您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > wxPython中文教程 简单入门加实例
wxPython中文教程简单入门加实例博客分类:Python2/WxpythonwxPythonPython编程浏览器脚本wx.Window是一个基类,许多构件从它继承。包括wx.Frame构件。技术上这意味着,我们可以在所有的子类中使用wx.Window的方法。我们这里介绍它的几种方法:*SetTitle(stringtitle)——设置窗口标题。只可用于框架和对话框。*SetToolTip(wx.ToolTiptip)——为窗口添加提示。*SetSize(wx.Sizesize)——设置窗口的尺寸。*SetPosition(wx.Pointpos)——设置窗口出现的位置。*Show(show=True)——显示或隐藏窗口。其中的参数可以为True或False。*Move(wx.Pointpos)——将窗口移动到指定位置。*SetCursor(wx.StockCursorid)——设置窗口的鼠标指针样式。Python代码1.importwx2.app=wx.PySimpleApp()3.frame=wx.Frame(None,-1,'')4.frame.SetToolTip(wx.ToolTip('Thisisaframe'))5.frame.SetCursor(wx.StockCursor(wx.CURSOR_MAGNIFIER))6.frame.SetPosition(wx.Point(0,0))7.frame.SetSize(wx.Size(300,250))8.frame.SetTitle('simple2.py')9.frame.Show()10.app.MainLoop()我们创建了一个Thisisaframe提示。鼠标指针被设置为放大镜样式。可用的鼠标指针样式有:wx.CURSOR_ARROWwx.CURSOR_RIGHT_ARROWwx.CURSOR_BLANKwx.CURSOR_BULLSEYEwx.CURSOR_CHARwx.CURSOR_CROSSwx.CURSOR_HANDwx.CURSOR_IBEAMwx.CURSOR_LEFT_BUTTONwx.CURSOR_MAGNIFIERwx.CURSOR_MIDDLE_BUTTONwx.CURSOR_NO_ENTRYwx.CURSOR_PAINT_BRUSHwx.CURSOR_PENCILwx.CURSOR_POINT_LEFTwx.CURSOR_POINT_RIGHTwx.CURSOR_QUESTION_ARROWwx.CURSOR_RIGHT_BUTTONwx.CURSOR_SIZENESWwx.CURSOR_SIZENSwx.CURSOR_SIZENWSEwx.CURSOR_SIZEWEwx.CURSOR_SIZINGwx.CURSOR_SPRAYCANwx.CURSOR_WAITwx.CURSOR_WATCHwx.CURSOR_ARROWWAIT我们把窗口放在了左上角,大小是300x250像素,标题被设置为simple2.py。======================================================================wx.Frame是一个容器构件。这意味着它可以容纳其它构件。它有如下的构造器:wx.Frame(wx.Windowparent,id,stringtitle,wx.Pointpos=wx.DefaultPosition,wx.Sizesize=wx.DefaultSize,style=wx.DEFAULT_FRAME_STYEL,stringname='frame')构造器是一种特殊的函数。它在对象创建时被调用。对于我们来说重要的是,我们打算创建一个新的构件时,只要简单的调用它的构造器就行了。Python允许参数有默认值。所以在wx.Frame中必须的参数就只剩下了parent、id和title了。如果你按顺序指定参数的值,那么你可以不必带上参数的名称。比如你想创建一个wx.Frame构件,它没有parent,标识符是100,标题是Title,位置在(100,50)大小是(100,100):frame=wx.Frame(None,100,'Title',wx.Point(100,50),wx.Size(100,100))下面我们省略了pos参数。所以必须明确的提供size参数:frame=wx.Frame(None,100,'Title',size=wx.Size(100,100))下面的例子,我们将使用其它有用的特性:Python代码1.importwx2.defmain():3.app=wx.PySimpleApp()4.frame=wx.Frame(None,-1,'Icon',wx.DefaultPosition,wx.Size(350,300))5.frame.SetIcon(wx.Icon('Tipi.ico',wx.BITMAP_TYPE_ICO))6.frame.Center()7.frame.Show()8.app.MainLoop()9.if__name__=='__main__':10.main()Icon文件名为Iipi.ico。位于当前目录下。Icon构造器的第一个参数是Icon文件名,第二个参数是Icon文件类型。就像你注意到的,程序的结构发生了改变。这样才符合Python编程的标准。在Python中,__name__是一个特殊的变量。更复杂的程序通常由几个文件组成,但仅有一个文件用于开启程序。对于这个文件,当你直接执行它时,Python设置__name__变量的值为'__main__'。所以,如果你双击icon.py或从命令行直接执行它,__name__变量的值就会等于__main__。main()函数也就会被调用。======================================================================创建一个菜单栏在wxPython中相当简单。我们将讨论给菜单栏添加菜单、为已经存在的菜单添加子菜单。所有菜单都有菜单项组成。菜单项可以是常规项、复选项以及单选项。先来创建一个菜单栏:menubar=wx.MenuBar()接着创建我们的菜单:file=wx.Menu()edit=wx.Menu()help=wx.Menu()然后为菜单添加菜单项。做这件事有两种方式:file.Append(101,'&Open','Openanewdocument')file.Append(102,'&Save','Savethedocument')我们可以使用横线来分隔逻辑区域:file.AppendSeparator()如果你想在菜单中使用Icon,你需要手工创建MenuItem对象:quit=wx.MenuItem(file,105,'&Quit\tCtrl+Q','QuittheApplication')quit.SetBitmap(wx.Image('stock_exit-16.png',wx.BITMAP_TYPE_PNG).ConvertToBitmap())file.AppendItem(quit)wxPython工具包只能把bitmap图片用于菜单,所以我们需要把我们的PNG图片转换为bitmap格式。然后把菜单加入到菜单栏:menubar.Append(file,'&File')menubar.Append(edit,'&Edit')menubar.Append(help,'&Help')最后在我们的程序类中创建菜单栏:self.SetMenuBar(menubar)我们把上述这些组成个小脚本:Python代码1.#!/usr/bin/envpython2.#FileName:menu1.py3.importwx4.classMyMenu(wx.Frame):5.def__init__(self,parent,ID,title):6.wx.Frame.__init__(self,parent,-1,title,wx.DefaultPosition,wx.Size(200,150))7.menubar=wx.MenuBar()8.file=wx.Menu()9.edit=wx.Menu()10.help=wx.Menu()11.file.Append(101,'&Open','Openanewdocument')12.file.Append(102,'&Save','Savethedocument')13.file.AppendSeparator()14.quit=wx.MenuItem(file,105,'&Quit\tCtrl+Q','QuittheApplication')15.quit.SetBitmap(wx.Image('stock_exit-16.png',wx.BITMAP_TYPE_PNG).ConvertToBitmap())16.file.AppendItem(quit)17.menubar.Append(file,'&File')18.menubar.Append(edit,'&Edit')19.menubar.Append(help,'&Help')20.self.SetMenuBar(menubar)21.22.classMyApp(wx.App):23.defOnInit(self):24.frame=MyMenu(None,-1,'menu1.py')25.frame.Show(True)26.returnTrue27.28.app=MyApp(0)29.app.MainLoop()到目前为止我们已经知道了如何定义默认的普通菜单项。接下来让我们看看如何明确的定义复选菜单项和单选菜单项:edit.Append(201,'checkitem1','',wx.ITEM_CHECK)edit.Append(202,'checkitem2','',kind=wx.ITEM_CHECK)或者quit=wxMenuItem(file,105,'&Quit\tCtrl+Q','QuittheApplication',wx.ITEM_NORMAL)其中那个参数被称为种类。可选的种类有:*wx.ITEM_NORMAL——默认*wx.ITEM_CHECK——复选*wx.ITEM_RADIO——单选如果你想创建子菜单,要先创建一个菜单:submenu=wx.Menu()然后为此子菜单添加一些菜单项:submenu.Append(301,'radioitem1',kind=wx.ITEM_RADIO)submenu.Append(302,'radioitem2',kind=wx.ITEM_RADIO)submenu.Append(303,'radioitem3',kind=wx.ITEM_RADIO)把子菜单添加到某个菜单对象就成了:edit.AppendMenu(203,'submenu',submenu)最后,我们来看一下如何响应用户的动作。我们只是简单的感受一下。后面会有更详细的解释。当用户选择了某个菜单项时,就产生了一个事件。我们必须提供一个事件处理器,用它反应相应的事件。在wxPython中处理事件是到目前为止我已知最优雅最简单的了。如果翻参考手册,你会发现wx.EVT_MENU处理在事件处理那章。假如我们想为quit菜单项添加一个事件处理器:wx.EVT_MENU(self,105,self.OnQuit)我们需要提供三个信息。我们要把事件处理器绑定到的那个对象。这里是self,程序的主对象。与之相匹配的菜单项的id。以及处理事件的方法的名称。对用户的动作做出反应的方法需要两个参数。第一个是方法定义于其中的那个对象。第二个是产生的事件。本例中,我们什么也不做,只是简单的关闭我们的程序:defOnQuit(self,event):self.Close()下面的脚本会展示上面
本文标题:wxPython中文教程 简单入门加实例
链接地址:https://www.777doc.com/doc-4941851 .html