像往常一样,我们首先要写一个小的hello,world!!!
的应用程序。代码如下:
import wx
app = wx.App(False)
frame = wx.Frame(None,wx.ID_ANY,"Hello,world!!!")
frame.Show(show=True)
app.MainLoop()
代码 | 说明 |
---|---|
app = wx.App(False) | 每个wxPython应用程序都是wx.App 的一个实例。对于大多数简单的应用程序,您可以使用wx.App 。当您获得更复杂的应用程序时,您可能需要扩展wx.App 类。False 参数表示“不要将stdout 和stderr 重定向到窗口”。 |
wx.Frame(None,wx.ID_ANY,"Hello") | 一个wx.Frame 是一个顶层窗口。语法为wx.Frame(Parent,Id,Title) 。大多数构造函数具有此形状(父对象,后跟Id )。在这个例子中,我们对no parent 和wx.ID_ANY 使用None ,使wxWidgets 为我们选择一个id 。 |
frame.Show(True) | 我们通过Show 使框架可见。 |
app.MainLoop() | 最后,我们启动应用程序的MainLoop ,其作用是处理事件。 |
注意 1:你还可以用-1来替代wx.ID_ANY
,-1 就是默认值的意思。另外wxWidgets
还提供了其它的标准 ID(v2.8)。 你也可以自定义一个ID
,但Getting Started with wxPython 认为,没有理由那样做,用标准ID
更好。
注意 2: 实际上,wx.Frame
的完整语法是(详细的参数介绍):
wx.Frame(Parent, ID, Title, pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, name="frame")
运行程序,你应该看到像这样的窗口:
(Windows) 还是 (Frame)?
当人们谈论GUI的时候,他们通常会说窗口(Windows),菜单(menus)和图标(icons)。那么自然地,你可能会认为应该用wx.Window
来代表屏幕上的一个window
。但实际上不是这样的。wx.Window
是一个class
,所有的可视化控件都是从这个class
派生出来的(比如说按钮(buttons
),菜单(menus
)等等)。我们平时用到的程序窗口是一个wx.Frame
类。对于许多初学者来说,这是两个概念很容易搞混,需要特别留心。
推荐相关连接:
wxWidgets之窗口标识符一
wxWidgets之窗口标识符二