1.介绍:GUI与wxpython
GUI即图形用户界面(Graphical User Interface),即计算机展示的每一个窗口。往往一个界面是连接很多API的载体,后台可能有多种语言支撑。但与语言种类没有关系,几乎每一种语言都可以编写出GUI。
wxpython是python的第三方库,本质上是一个GUI图形库,专门用来编写GUI界面,所以wxpython只是一个工具。Python编写GUI的优势在于编写简单易于理解,但可能效率没有其他语言高。
2.准备:wxpython安装
wxpython的安装也可以像python其他第三方库的安装方式一样,直接使用pip进行,执行如下:
pip install wxPython |
---|
还有根据pip支持内容下载.whl文件进行安装的方法,但此方法在网络上整理的比较详细,在此就不再过多介绍。
3.实战:自制GUI实现电脑关机,重启
Wxpython里附带的功能有很多种,例如文本框,图片,按钮等能在平时所见窗口见到的。MessageBox就是文本框功能,Button为按钮。
每个GUI都有自己的一个框架(Frame),就是边框,可以对边框进行随意配置,大小(size),样式(style),父界面(parents),标题(title)等等。方式就是通过类与函数去定义参数。
class Frame(wx.Frame): def __init__(self,parents,id,title): wx.Frame.__init__(self,None,1,”hello”) |
---|
方式必须以此为准,但只有parents是必须传参,其他都有默认参数。
而按钮的设置也如此,对位置,大小,内容进行设置,但是这个前提是需要一个“画布”(panel),来摆放按钮。将按下按钮后所发生的变化称为“事件”,其实编写的过程就是将“事件”与按钮捆绑,这里实现界面关机就是将系统关机重启API,即os.system()接入按钮实现。
接下来看代码:
import wximport osclass Frame(wx.Frame): def __init__(self,parents,id,title): wx.Frame.__init__(self,parents,id,title) panel= wx.Panel(self) button_power_off=wx.Button(panel,1003,u"关机") button_power_off.SetPosition((180,100)) self.Bind(wx.EVT_BUTTON,self.power_off,button_power_off) button_restart=wx.Button(panel,1003,u"重启") button_restart.SetPosition((70,100)) self.Bind(wx.EVT_BUTTON,self.restart,button_restart) def power_off(self,a): wx.MessageBox("一分钟后关机","确认关机") os.system("shutdown -s -t 60") def restart(self,a): wx.MessageBox("一分钟后重启","确认重启") os.system("shutdown -r -t 60") App = wx.App()Frame = Frame(None,1,"请选择对电脑进行的操作")Frame.Show()App.MainLoop() |
---|
实现界面如下:
图3.1 实现GUI界面
图3.2按动按钮后界面
图3.3 系统响应
结语
只要有足够多的手段与方式,就可以在自己的电脑上制作许多有趣的“游戏”,如可以完成网络上流行的垃圾窗口轰炸等。再深入探究,将事件与事件联系,甚至可以做出自己的一套操作系统或是更高水平。
END
编 辑 | 王楠岚
责 编 | 李和龙
where2go 团队