我想添加一個功能,我用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