1.初识GUI
GUI是图形用户界面的英文缩写,通过GUI用户可以看到窗口、按钮、文本框等图形,而且可以用鼠标单击,还可以通过键盘键入。
python中流行的GUI工具包有:
2.安装wxPython
在Windows的cmd命令下,使用pip语句即可安装:
3.创建应用程序
3.1 先创建一个没有任何功能的子类,执行如下4个步骤:
■ 定义这个子类。
■ 在定义的子类中写一个OnInit()初始化方法。
■ 在程序的主要部分创建这个类的一个实例。
■ 调用应用程序实例的MainLoop()方法。这个方法将程序的控制权转交给wxPython。
3.2使用wx.Frame框架
创建wx.Frame的子类时,子类应该调用其父类的构造器wx.Frame.__init__()。
wx.Frame构造器的语法格式如下:wx.Frame(parent, id=-1, title="", pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE, name="frame")
参数说明:■ parent:框架的父窗口。如果是顶级窗口,这个值是None。■ id:关于新窗口的wxPython ID号。通常设为-1,让wxPython自动生成一个新的ID。■ title:窗口的标题。■ pos:一个wx.Point对象,它指定这个新窗口的左上角在屏幕中的位置。在图形用户界面程序中,通常(0,0)是显示器的左上角。这个默认值(-1,-1)将让系统决定窗口的位置。■ size:一个wx.Size对象,它指定这个窗口的初始尺寸。这个默认值(-1,-1)将让系统决定窗口的初始尺寸。■ style:指定窗口的类型的常量。可以使用或运算来组合它们。■ name:框架内在的名字。可以使用它来寻找这个窗口。
4.常用控件
控件:就是经常使用的按钮、文本、输入框、单选框等。
4.1 StaticText文本类
wx.StaticText类的构造函数语法格式如下:
wx.StaticText(parent, id, label, pos=wx.DefaultPosition,size=wx.DefaultSize, style=0, name="staticText")
参数说明:■ parent:父窗口部件。■ id:标识符。使用-1可以自动创建一个唯一的标识。■ label:显示在静态控件中的文本内容。■ pos:一个wx.Point或一个Python元组,它是窗口部件的位置。■ size:一个wx.Size或一个Python元组,它是窗口部件的尺寸。■ style:样式标记。■ name:对象的名字。
运行后:
4.2 TextCtrl 输入文本类
StaticText文本类只能够用于显示纯粹的静态文本,TextCtrl 输入文本类
运行输入单行和多行文本,也可以作为密码输入控件,掩饰所按下的按键。
wx.TextCtrl类的构造函数语法格式如下:wx.TextCtrl(parent, id, value = "", pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, validator=wx.DefaultValidator name=wx.TextCtrlNameStr)
参数说明:■ style:单行wx.TextCtrl的样式,取值及说明如下:● wx.TE_CENTER:控件中的文本居中。● wx.TE_LEFT:控件中的文本左对齐。● wx.TE_NOHIDESEL:文本始终高亮显示,只适用于Windows。● wx.TE_PASSWORD:不显示所键入的文本,以星号(*)代替显示。● wx.TE_PROCESS_ENTER:如果使用改参数,那么当用户在控件内按下<Enter>键时,一个文本输入事件将被触发。否则,按键事件由该文本控件或该对话框管理。● wx.TE_PROCESS_TAB:如果指定了这个样式,那么通常的字符事件在按下<Tab>键时创建(一般意味一个制表符将被插入文本)。否则,tab由对话框来管理,通常是控件间的切换。● wx.TE_READONLY:文本控件为只读,用户不能修改其中的文本。● wx.TE_RIGHT:控件中的文本右对齐。■ value:显示在该控件中的初始文本。■ validator:常用于过滤数据以确保只能键入要接受的数据。
4.3 Button按钮类
wx.Button的构造函数的语法如下:wx.Button(parent, id, label, pos, size=wxDefaultSize, style=0, validator, name="button")
在上面的界面增加“确认”和“取消”按钮: