wxPythonpython的一个优秀的和跨平台的GUI库
内容概要:
1说明
2安装:Deepinlinux深度国产操作系统的安装
3入门:Helloworld和窗口认识,注释详细
1说明:
1。1wxPython是作为优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的。
1。2wxPython是Python语言的一套优秀的GUI图形库。
1。3据说国外很流行的一个python的GUI库,比pyqt,pyside2简单,比python内置库tkinter强大。
2安装:
2。1官网:
https:www。wxpython。org
2。2最新版本
2。3本机安装:有点小问题。
2。3。1本机是deepinlinux操作系统
2。3。2先安装依赖:sudoaptgetinstalllibgtk3devbuildessentialcheckinstall
2。3。3再安装:pipinstallwxPython4。1。1下面是我的本机安装sudopip3。8installwxPython4。1。1本机安装
3入门:
3。1最简单的代码:一切都是默认importwx引入wx模块appwx。App()实例化一个主循环framewx。Frame(None)实例化一个窗口frame。Show()调用窗口展示功能app。MainLoop()启动主循环
3。2helloworld代码importwxappwx。App()默认位置和大小framewx。Frame(None,1,Hello,World!)title窗口标题名,pos位置,size窗口的大小framewx。Frame(None,1,titleHello,World!,pos(100,100),size(500,500))parentNone父元素,假如为None,代表顶级窗口idNone组件的标识,唯一,假如id为1代表系统分配idframewx。Frame(None,titleHello,World!,pos(100,100),size(500,500))定义画板pnlwx。Panel(frame)在上面放一个大号的静态文本,pos是坐标位置,默认左上角为0,0wx。StaticText(pnl,labelHelloWorld你好世界!,pos(100,100))frame。Show(True)app。MainLoop()
3。3helloworld的代码(2)的图
4豪华型Helloworld:
4。1加入的内容:背景颜色设置,状态栏的显示,菜单设置,信息弹出框。
4。2我用自己喜欢的方式,代码:importwxappwx。App()framewx。Frame(None,titleHello,World!,pos(100,100),size(500,500))add1:背景颜色设置frame。SetBackgroundColour(pink)add2:创建状态栏frame。CreateStatusBar()frame。SetStatusText(状态栏)add3:菜单按钮功能defonexit(event):关闭框架,终止应用程序。frame。Close(True)defonhello(event):显示Hello对话框。wx。MessageBox(HelloWorld!)defonabout(event):显示关于对话框wx。MessageBox(这是一个wxPython的演示Demo,关于HelloWorld,wx。OKwx。ICONINFORMATION)使用Hello和退出项目创建文件菜单filemenuwx。Menu()语法。。。定义了一个快捷键helloitemfilemenu。Append(1,Hello。。。CtrlH,此菜单项在状态栏中显示的帮助信息)filemenu。AppendSeparator()使用StockID时,无需指定菜单项的标签exititemfilemenu。Append(wx。IDEXIT)只有一个关于项目的帮助菜单helpmenuwx。Menu()aboutitemhelpmenu。Append(wx。IDABOUT)制作菜单栏,然后向其中添加两个菜单menubarwx。MenuBar()menubar。Append(filemenu,文件)menubar。Append(helpmenu,帮助)将菜单栏移至框架frame。SetMenuBar(menubar)将每个菜单项的处理函数与EVTMENU事件关联frame。Bind(wx。EVTMENU,onhello,helloitem)frame。Bind(wx。EVTMENU,onexit,exititem)frame。Bind(wx。EVTMENU,onabout,aboutitem)定义画板pnlwx。Panel(frame)在上面放一个大号的静态文本,pos是坐标位置,默认左上角为0,0wx。StaticText(pnl,labelHelloWorld!,pos(100,100))frame。Show(True)app。MainLoop()
4。3效果图:
4。4正规高级代码格式:效果同上importwxclassHelloWorld(wx。Frame):definit(self,args,kw):确保父类的init被调用super(HelloWorld,self)。init(args,kw)在框架中创建一个面板pnlwx。Panel(self)在上面放一个大号的静态文本stwx。StaticText(pnl,labelHelloWorld!,pos(100,100))高级字体设置fontst。GetFont()font。PointSize10fontfont。Bold()st。SetFont(font)创建一个大小调整器来管理子控件的布局sizerwx。BoxSizer(wx。VERTICAL)sizer。Add(st,wx。SizerFlags()。Border(wx。TOPwx。LEFT,25))pnl。SetSizer(sizer)创建菜单栏self。makemenubar()背景颜色设置self。SetBackgroundColour(pink)创建状态栏self。CreateStatusBar()self。SetStatusText(状态栏)defmakemenubar(self):使用Hello和退出项目创建文件菜单filemenuwx。Menu()语法。。。定义了一个快捷键helloitemfilemenu。Append(1,Hello。。。CtrlH,此菜单项在状态栏中显示的帮助信息)filemenu。AppendSeparator()使用StockID时,无需指定菜单项的标签exititemfilemenu。Append(wx。IDEXIT)只有一个关于项目的帮助菜单helpmenuwx。Menu()aboutitemhelpmenu。Append(wx。IDABOUT)制作菜单栏,然后向其中添加两个菜单menubarwx。MenuBar()menubar。Append(filemenu,文件)menubar。Append(helpmenu,帮助)将菜单栏移至框架self。SetMenuBar(menubar)将每个菜单项的处理函数与EVTMENU事件关联self。Bind(wx。EVTMENU,self。onhello,helloitem)self。Bind(wx。EVTMENU,self。onexit,exititem)self。Bind(wx。EVTMENU,self。onabout,aboutitem)defonexit(self,event):self。Close(True)defonhello(self,event):wx。MessageBox(HelloWorld!)defonabout(self,event):wx。MessageBox(这是一个wxPython的演示Demo,关于HelloWorld,wx。OKwx。ICONINFORMATION)ifnamemain:创建应用和框架appwx。App()frmHelloWorld(None,titleHelloWorld)显示框架并启动事件循环frm。Show()app。MainLoop()
注释详细,讲解清楚,小白一秒入门
祝:
三八妇女节快乐。