使用WxPython进行Win32下Python编程(3)

王朝system·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

大多数情况下,你会想要定制应用程序的主框架,所以使用普通的wxFrame是不够的。你可能希望,从wxFrame派生出自已的类进行定制。下一个例子定义了一个框架类,并且在应用程序中的O nInit方法中创建了一个实例。注意除了在OnInit中创建的类的名字,MyApp代码的其它部分同以前的例子是一样的。这个代码的显示结果如图2 。

[myphp]

from wxPython.wx import *

ID_ABOUT = 101

ID_EXIT = 102

class MyFrame(wxFrame):

def __init__(self, parent, ID, title):

wxFrame.__init__(self, parent, ID, title,

wxDefaultPosition, wxSize(200, 150))

self.CreateStatusBar()

self.SetStatusText("This is the statusbar")

menu = wxMenu()

menu.Append(ID_ABOUT, "&About",

"More information about this program")

menu.AppendSeparator()

menu.Append(ID_EXIT, "E&xit", "Terminate the program")

menuBar = wxMenuBar()

menuBar.Append(menu, "&File");

self.SetMenuBar(menuBar)

class MyApp(wxApp):

def OnInit(self):

frame = MyFrame(NULL, -1, "Hello from wxPython")

frame.Show(true)

self.SetTopWindow(frame)

return true

app = MyApp(0)

app.MainLoop()

图2 一个带菜单的wxPython程序

[/myphp]

这个例子显示了一些wxFrame内建的一些功能。例如,为框架创建一个状态条只要简单地调用一个方法。框架本身会自动地管理它的位置,大小,和绘制。另一方面,如果你想定制状态条,从你自已的w xStatusBar派生类创建实例,并将其附加到框架上。

在这个例子中也演示了创建一个简单的菜单条和一个下拉菜单。期待的菜单功能全部都支持:层叠子菜单,可核选的项,弹出菜单等等;你要做的只是创建一个菜单对象,向它追加菜单项。菜单项可以是象这里显示的文本,或其它的菜单。每一项你可以有选择地指定一些简单的帮助性文本,就象我们所做的。当菜单项被选中,这些文本会自动地显示在状态条上。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航