【发布时间】:2015-02-03 00:21:26
【问题描述】:
我正在尝试向我用 wxpython 制作的计算器添加一个功能,我希望有一个按钮,单击该按钮时会更改背景颜色(面板)。为了向您展示我的代码,我制作了一个较小的程序,它只会改变颜色,即使在这个程序中,我也会得到相同的结果: 背景颜色没有改变,当我单击按钮时没有任何反应,我什至没有收到任何错误消息。实际上,计算器确实改变了颜色,但不是我想要的方式,它只会改变文本的颜色(一个 wx.StaticText),它并不是真的要这样做。 无论如何,这是代码:
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 组合?
-
使用 SetOwnBackgroundColour 仅更改面板的颜色,而不更改其子项的颜色。在 Windows 7 上为我设置颜色后需要 self.Refresh()
-
我在windows上使用python 2.7,其实我还没有在ubuntu上试过,谢谢!!!
-
无论如何全局都在那里,因为我在程序的其余部分中需要它,我错误地将它留在了我在这里发布的小程序中;)
标签: python colors wxpython panel