【问题标题】:I'm trying to create a button with wxPython but it doesn't appear in the output frame, where am I wrong?我正在尝试使用 wxPython 创建一个按钮,但它没有出现在输出框中,我错在哪里?
【发布时间】:2019-09-19 15:05:34
【问题描述】:

我是 wxpython 模块的新手,我有一个 macOS Sierra,我正在尝试创建一个按钮,但它没有出现,而且我无法更改面板的背景颜色,所以我认为问题出在面板的定义中,我该如何解决?

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 __int__(self,parent,id,title):
        super(MyFrame, self).__init__(parent,id,title)
        self.panel=wx.Panel(self)
        self.panel.SetBackgroundColour(wx.BLACK) # it doesn't work
        self.button=wx.Button(self.panel,label="premi",pos=(40,40))  # it doesn't work


if __name__=="__main__":
    app=MyApp(False)
    app.MainLoop()

脚本的输出只是默认帧。

【问题讨论】:

  • 你需要一个sizer(简单的BoxSizer应该在这里做)或者实际上两个(一个用于框架,一个用于面板)。 Sizer 负责子组件的布局。

标签: python macos wxpython


【解决方案1】:

问题是您输入了MyFrame.__init__ 方法的名称。您将其命名为 __int__,因此在创建 MyFrame 的实例时不会调用它。

【讨论】:

  • 是的,它有效,我没有看到它。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-30
  • 2019-10-30
  • 2017-09-17
  • 1970-01-01
  • 2022-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多