从开发框架出发:使用WxPython设计GUI(1)

由于某种原因,最近又开始复习python基础语法,巩固自己,数据分析的博客后续再补充。
今天来讲讲WxPython模块,用于python程序开发的GUI设计

python的WxPython模块

Wxpython是跨平台GUI图形界面开发库wxwidgets的python语言绑定。其中有丰富的窗口部件,可以快速创建功能强大、界面元素丰富的GUI程序,同时它是开源的,而且通过wxPython设计的程序无需修改即可运行在多种系统平台上。
windows安装直接dos命令:pip install wxpython

简单的wxpython程序

任何语言都离不开hello world,于是,我们来开发一个输出hello world的窗口程序吧,程序员就是这么喜欢认识世界。

#coding:utf-8
import wx
class MyFrame(wx.Frame):
     def __init__(self):
          wx.Frame.__init__(self,None,-1,'Hello World',size=(300,300))
          panel = wx.Panel(self,-1)
          txt = wx.StaticText(panel,-1,'Hello world!')
          self.Centre()
app = wx.App()
frame = MyFrame()
frame,Show()
app.MainLoop()

代码如上,wxpython的窗口实现基类是wx.Frame,故我们使用的窗口构造函数必须继承它,wx.Frame的构造参数如下:

parent:窗口的父窗口或者说是根窗口,程序窗口的创建必须有一个根窗口,在此基础之上,再叠加其他窗口,故每一个窗口的建立必须指定的父窗口,当子窗口关闭时,父窗口不受影响,而当父窗口关闭时,子窗口而随着消失。由于我们创建的窗口为程序的第一个窗口,故无需指定父窗口,参数parent=None,后续可通过其他参数指定父窗口。
id:每个窗口在程序运行时都会有指定的id,便于区分每个窗口,而这只是针对在同一个程序内,不同程序的窗口id可以相同。为了避免窗口id冲突,我们可以使用参数-1,来让系统自动分配窗口id。当然也可以手动指定,只要你分配好,就。。。没问题。
title:这个就不用解释了,看英语知道意思,解释窗口的标题名字
size:设置窗口大小,解决。

wx.Panel()

按照我学java过来的经验解释,panel是一个容器,负责存放窗口的一切组件,而且在wxpython里,每一个窗口组件建立都必须声明它存放的容器是什么,如上面的父窗口一样。后面的wx.StaticText就是如此,使用panel作为容器,-1参数也是组件的id,后续则是文本内容,补充一点的是,StaticText常用于组件标签。

wx.App()

wx.App是wxPython里面的一个程序基类,如wx.Frame功能类似,用于创建应用程序。我的理解是,一个完整的应用程序,它的基类是有Frame与App构成的。

其他的代码如:frame.Show()是在屏幕上显示窗口,app.Mainloop是循环执行app程序。
后续对wx.App再进行介绍
以下是运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ACID_lv_ing/article/details/88017352