Tkinter模块,通过该模块我们可以进行简单的图像界面开发,但是我们可以发现很多人在开发的时候还会选择wxPython模块,它是一个比较成熟且特性比较丰富的模块,它和Tkinter类似,也要引入窗口、按钮、文本框等内容,但是又有它独特的用法,在这里我们先通过一张图来了解一下程序和窗口之间的关系。
然后我们通过一个最简单的wxPython程序来对应一下相关结构,代码如下:
12345 | import wx app = wx.App() win = wx.Frame( None ,title = '小程序' ,size = ( 300 , 300 )) win.Show() app.MainLoop() |
注意我们导入的时候使用wx两个英文字母,然后第一行的app即我们的应用程序对象,win对应的是一个窗口对象,我们可以在窗口中添加组件或者功能,然后下面的一行是使这个窗口显示,最后一行就是主事件循环,运行结果如下:
1. 初始化
上面提到的例子就是我们使用wxPython的基本架构,如果我们在程序开发的时候,使用类与对象的关系会更方便我们后期的处理。
我们创建子类的时候首先定义一个子类,然后创建一个OnInit()方法来初始化这个子类,最后在主程序中调用这个类,然后进入主事件循环。
代码如下:
123456789 | import wx class App(wx.App): def OnInit( self ): window = wx.Frame(parent = None ,title = '初始化' ) window.Show() return True if __name__ = = '__main__' : app = App() app.MainLoop() |
运行结果为:
这个例子中,我们定义的子类App继承了父类wx.App,然后在子类中创建了一个初始化方法,最后在主程序中创建一个类的实例,再进入主事件循环。
2. Frame框架
我们在创建实例的时候总是要引入Frame框架,它属于一种容器,可以用来存放我们主程序的一些标题和功能区,我们来看一下它的语法结构:
1 | wx.Frame(parent, id = - 1 ,title = ’’,style = ’’,name = ’’,pos = wx.DefaultPositon,size = wx.DefaultSize) |
Parent指的是框架所处的位置,也就是父窗口的名字,如果当前为顶级窗口,就用None来代替,id为新窗口的ID号,通常设置为-1,title即窗口的名字,size即窗口的大小,style即窗口的类型,name框架的内部名字,pos为一个对象,指定了这个新窗口在界面中的位置,上面所选的Default为默认参数。
具体使用如下:
1 | window = wx.Frame(parent = None , id = - 1 ,title = 'Frame框架' ,size = ( 400 , 400 ),pos = ( 2 , 2 )) |
3. 总结
对比与Tkinter我们可以发现他们之间有很多类似的地方,但是他们的语法部分是对应的但使用方法却不相同,所以在使用的时候一定要注意两个模块的使用区别。