我们在前面学习来Tkinter模块,通过该模块我们可以进行简单的图像界面开发,但是我们可以发现很多人在开发的时候还会选择wxPython模块,它是一个比较成熟且特性比较丰富的模块,它和Tkinter类似,也要引入窗口按钮文本框等内容,但是又有它独特的用法,在这里我们先通过一张图来了解一下程序和窗口之间的关系。

          wxpython1

然后我们通过一个最简单的wxPython程序来对应一下相关结构,代码如下:

import wx
app = wx.App()
win = wx.Frame(None,title = '小程序',size = (300,300))
win.Show()
app.MainLoop()

注意我们导入的时候使用wx两个英文字母,然后第一行的app即我们的应用程序对象,win对应的是一个窗口对象,我们可以在窗口中添加组件或者功能,然后下面的一行是使这个窗口显示,最后一行就是主事件循环,运行结果如下:

wxpython2

1. 初始化

上面提到的例子就是我们使用wxPython的基本架构,如果我们在程序开发的时候,使用类与对象的关系会更方便我们后期的处理。

我们创建子类的时候首先定义一个子类,然后创建一个OnInit()方法来初始化这个子类,最后在主程序中调用这个类,然后进入主事件循环。

代码如下:

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()

运行结果为:

wxpython3

这个例子中,我们定义的子类App继承了父类wx.App,然后在子类中创建了一个初始化方法,最后在主程序中创建一个类的实例,再进入主事件循环。

2. Frame框架

我们在创建实例的时候总是要引入Frame框架,它属于一种容器,可以用来存放我们主程序的一些标题和功能区,我们来看一下它的语法结构:

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为默认参数。

具体使用如下:

window = wx.Frame(parent = None,id = -1,title = 'Frame框架',size = (400,400),pos = (2,2))

3. 总结

对比与Tkinter我们可以发现他们之间有很多类似的地方,但是他们的语法部分是对应的但使用方法却不相同,所以在使用的时候一定要注意两个模块的使用区别。


点赞(0)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)