我想添加一个功能,我用wxpython做了一个计算器,我想那里有一个按钮,点击后改变背景颜色(面板)。为了向您展示我的代码,我制作了一个较小的程序,该程序只能改变颜色,即使在这一个中,我也会得到相同的结果: 背景颜色不会改变,点击按钮时不会发生任何反应,而且我也不会接收任何错误。实际上,计算器确实会改变颜色,但不是以我想要的方式改变颜色,它只改变文本的颜色(wx.StaticText),并不是真的要这样做。 总之,这里是代码:wxPython面板SetBackgroundColour按钮事件
import wx
class calc(wx.Frame):
def __init__(self,parent,id):
wx.Frame.__init__(self,parent,id,"Calculator",size=(400,400))
global panel
panel=wx.Panel(self)
a=wx.Button(panel,label="GO",pos=(100,100),size=(50,50))
self.Bind(wx.EVT_BUTTON, self.change, a)
def change(self,event):
panel.SetBackgroundColour("red")
if __name__=="__main__":
app=wx.App(False)
frame=calc(parent=None,id=-1)
frame.Show()
app.MainLoop()
当我运行此,与按钮的边框显示,当我点击按钮,没有任何反应!有人知道这有什么问题吗? 感谢您的咨询!
此代码适用于Xubuntu,wxPython 2.8.12和Python 2.7。你使用的是什么操作系统和wxPython/Python组合? – 2014-12-04 22:51:16
使用SetOwnBackgroundColour仅更改面板的颜色而不更改它的子项。需要一个self.Refresh()后设置颜色为我在Windows 7 – Yoriz 2014-12-04 23:01:41
我在Windows上使用python 2.7,我实际上还没有试过它在Ubuntu上,谢谢! – 2014-12-06 13:24:24