如何用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 wx
import 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-8
import wx
import os
import datetime
import time
#import the newly created GUI file
import picture
class 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运行程序,可以看到图形界面生成成功。
