现在用的教材讲了这个就先研究一下。
前置知识:
Python中类的创建方法
Class className(object):->默认为object,否则为继承的父类。
DefmethodName(self):->默认参数有self,其他为输入参数。
方法内部创建的变量为私有,主函数中为公有。类一旦创建,先分配内存,然后执行内部的_init_方法。
一个按钮通常具有以下属性:
1、 Label
2、 Size
3、 Pos
4、 Font
5、 ……
以及以下方法:
1、 setlabel
2、 setdefault
3、 enable
4、 ……
对于wx,必须要创建对应的App和Frame对象。
如创建继承自App的对象,要将Frame定义在OnInit方法中。
框架中的组件:
1、 组件容器(containers):用于容纳其他组件,如wx.Panel。
2、 动态组件(DynamicWidgets):可以被用户编辑,如wx.Button,wx.TextCtrl,wx.ListBox等。
3、 静态组件(StaticWidgets):显示信息用,不能被用户编辑,如wx.StaticBitmap,wx.StaticText,wx.StaticLine等
4、 其他组件,如wx.ToolBar,wx.MenuBar,wx.StatusBar
在类中使用其他方法出现的变量,要全用self.XXX。
GUI常用组件有:
1、 静态文本
2、 列表框
3、 输入框
4、 按钮
5、 菜单
按钮(Buttom及其家族):
功能:接受用户的点击。可以指定大小和文字和处理事件的函数。
常用按钮:
Wx.Buttom:文本按钮
Wx.BitmapButtom:位图按钮
Wx.ToggleButtom:开关按钮(具有两个常态)
绑定处理按钮点击的事件。
菜单:
1、 菜单栏
2、 菜单
3、 菜单项命令
wxPython用于创建菜单的类:
1、 wx.MenuBar
2、 wx.Menu
3、 wx.MenuItem
静态文本框(StaticText)和文本框(TextCtrl):
文本框用于接收用户在框内输入的信息,或显示由程序提供的信息。
静态文本框(标签)类:wx.StaticText
文本框类:wx.TextCtrl,常用形式为单行,多行,富文本框。
列表(ListCtrl):
列表用于显示多个条目并且可供用户选择。
列表能够以下面四种不同模式建造:
1、 wx.LC_ICON(图标)
2、 wx.LC_SMALL_ICON(小图标)
3、 wx.LC_LIST(列表)
4、 wx.LC_REPORT(报告)
单选框(RadioBox)和复选框(CheckBox):
复选框用于从一组可选项中,同时选中多分选项。
对应的,单选框用于从一组互斥的选项中,选取其一。
在Frame中用到多于一个组件的时候需要用到布局管理。
绝对定位——每个窗口部件在被创建的时候显式的指定了大小和位置。
缺点是定位不灵活,调整大小困难,受设备、操作系统甚至字体影响。
Wxpython中提供的灵活布局解决方案是sizer。
每个sizer有自己的定位策略,开发者只需要选择合适策略的sizer将窗口组件放入,并且指定好需求即可。所谓指定好需求是指,指定新加入的窗口组件与原组件的位置关系,或需要占据多大的网格等。
wxPython常用的sizer:
1、 wx.BoxSizer:在一条线上布局子窗口部件,水平或垂直。
2、 wx.FlexGridSizer:行高和列宽由最大的组件决定。
3、 wx.GridSizer:所有组件大小一致,固定一个方向,在另外一个方向生长。
4、 wx.GridBagSizer
5、 wx.StaticBoxSizer
使用sizer的步骤:
1、 创建自动调用尺寸的容器,如panel。
2、 创建sizer
3、 创建子窗口(窗体部件)
4、 使用sizer的Add方法将每个子窗口添加给sizer
5、 调用容器的SetSizer(sizer)方法
其他可用GUI库:Tkinter和PyQt以及PyGTK。