macOS Sierra下wxPython按钮不显示、面板背景色无法修改问题
问题解决:wxPython按钮不显示+面板背景色无效
嘿,我一眼就瞅到你代码里的问题啦——这是个超级容易犯的拼写错误!
你看你的MyFrame类里,构造函数写成了__int__,但Python类的构造函数应该是__init__(注意是两个下划线+init+两个下划线)。就因为少写了一个字母i,你后面创建面板、设置背景色、添加按钮的代码根本就没被执行!程序只会调用默认的Frame构造函数,所以你看到的就是一个光秃秃的默认窗口。
修正后的完整代码:
import wx class MyApp(wx.App): def OnInit(self): self.frame=MyFrame(None,-1,title="Henry") self.SetTopWindow(self.frame) self.frame.Show() return True class MyFrame(wx.Frame): def __init__(self,parent,id,title): # 这里把__int__改成__init__ super(MyFrame, self).__init__(parent,id,title, size=(300, 200)) # 添加初始尺寸让窗口更合适 self.panel=wx.Panel(self) self.panel.SetBackgroundColour(wx.BLACK) self.button=wx.Button(self.panel,label="premi",pos=(40,40)) if __name__=="__main__": app=MyApp(False) app.MainLoop()
额外小建议:
- 我给Frame加了
size=(300,200)参数,这样窗口打开就有合适的大小,不用手动拖拽调整 - 作为wxPython新手,后续可以学学
sizer布局机制,比用pos固定位置更灵活,能适配不同窗口大小和系统
内容的提问来源于stack exchange,提问作者Davide Luciano
相关产品推荐
相关产品推荐

