如何用wxFormBuilder给Python绘制图形化界面
1、接下来将介绍如何制作任务的图形界面程序;
2、首先打开电脑的磁盘并创建好以下文件main.py主程序文件和picture.py图形绘制文件;
3、打开电脑桌面的geany软件,并在picture.py里面输入如下代码并保存:# -*- coding: utf-8 -*-############################################################################# Python code generated with wxFormBuilder (version Jun 5 2014)## http://www.wxformbuilder.org/#### PLEASE DO "NOT" EDIT THIS FILE!###########################################################################import wximport wx.xrc############################################################################# Class MyFrame1###########################################################################class MyFrame1 ( wx.Frame ): def __init__( self, parent ): wx.Frame.__init__ ( self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size( 500,300 ), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL ) self.SetSizeHintsSz( wx.DefaultSize, wx.DefaultSize ) bSizer1 = wx.BoxSizer( wx.VERTICAL ) self.m_staticText1 = wx.StaticText( self, wx.ID_ANY, u"任务ID", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText1.Wrap( -1 ) bSizer1.Add( self.m_staticText1, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 ) self.m_textCtrl1 = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer1.Add( self.m_textCtrl1, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 ) self.m_staticText2 = wx.StaticText( self, wx.ID_ANY, u"用户名", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText2.Wrap( -1 ) bSizer1.Add( self.m_staticText2, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 ) self.m_textCtrl3 = wx.TextCtrl( self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer1.Add( self.m_textCtrl3, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 ) self.m_button1 = wx.Button( self, wx.ID_ANY, u"执行任务", wx.DefaultPosition, wx.DefaultSize, 0 ) bSizer1.Add( self.m_button1, 0, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 5 ) self.m_staticText3 = wx.StaticText( self, wx.ID_ANY, u"任务执行进度", wx.DefaultPosition, wx.DefaultSize, 0 ) self.m_staticText3.Wrap( -1 ) bSizer1.Add( self.m_staticText3, 0, wx.ALL, 5 ) self.m_gauge1 = wx.Gauge( self, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.GA_HORIZONTAL ) self.m_gauge1.SetValue( 0 ) bSizer1.Add( self.m_gauge1, 0, wx.ALL, 5 ) self.SetSizer( bSizer1 ) self.Layout() self.Centre( wx.BOTH ) # Connect Events self.m_button1.Bind( wx.EVT_BUTTON, self.btn_submit ) def __del__( self ): pass # Virtual event handlers, overide them in your derived class def btn_submit( self, event ): event.Skip()
4、继续打开main.py文件输入如下代码并保存:#coding:utf-8import wximport osimport datetimeimport time#import the newly created GUI fileimport pictureclass CalcFrame(picture.MyFrame1): def __init__(self,parent): picture.MyFrame1.__init__(self,parent) def btn_submit(self,event): task_id = self.m_textCtrl1.GetValue() username = self.m_textCtrl3.GetValue() start = time.clock() end = time.clock() waiting_time = int( round( (end -start),0 ) ) step_long = 100 / waiting_time print("***************") print(waiting_time) for t in range(101): t += step_long self.m_gauge1.SetValue (t)def main(): app = wx.App(False) frame = CalcFrame(None) frame.Show(True) #start the applications app.MainLoop()if __name__ == '__main__': main()
5、在运行mian.py主程序之前,需要打开电脑的cmd窗口,执行命令“ pip install -U wxPython ”安装python最新的图形界面模块;
6、看到如图示,说明环境wxpython模块安装成功;
7、接下来在Geany软件main.py主程序页面按下快捷键F5运行程序,可以看到图形界面生成成功。