主页 > GUI教程 > 正文

Python运用wxPython、py2exe编写桌面程序

Python是支撑可视化编程,即编写gui程序,你能够用它来编写自己喜爱的桌面程序。运用wxPython来做界面十分的简略,仅仅不能像C#相同拖动控件,需求自行写代码布局。在完结编写之后,因为直接的py文件不能再没有装置python的电脑上运转,能否有一个打包成在恣意电脑都能运转的东西,网上找找发现了py2exe正好能够完结这个功用。wxPython和py2exe都是开源免费软件。

wxPython: 下载后双击装置即可,装置程序会主动装置到对应python\Scripts下。

py2exe:相同双击即可装置,留意下载要对应运用的Python版别。

下面别离示例阐明wxPython和py2exe的简略运用。

文件名:wxTest.py:

# -*- coding: cp936 -*-
'''MainWindow类完结最简略的修正功用,增加一个主菜单,两个子菜单(about和exit)'''
import wx
 
class MainWindow(wx.Frame):
  '''界说一个窗口类'''
  def __init__(self, parent, title):
    wx.Frame.__init__(self, parent, title=title, size=(300, 300))
    self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE)
 
    self.setupMenuBar()
    self.Show(True)
 
  def setupMenuBar(self):
    self.CreateStatusBar()
 
    menubar = wx.MenuBar()
    menufile = wx.Menu()
 
    mnuabout = menufile.Append(wx.ID_ABOUT, '&About', 'about this shit')
    mnuexit = menufile.Append(wx.ID_EXIT, 'E&xit', 'end program')
 
    menubar.Append(menufile, '&File')
 
    #事情绑定
    self.Bind(wx.EVT_MENU, self.onAbout, mnuabout)
    self.Bind(wx.EVT_MENU, self.onExit, mnuexit)
     
    self.SetMenuBar(menubar)
 
  def onAbout(self, evt):
      '''点击about的事情呼应'''
      dlg = wx.MessageDialog(self, 'This app is a simple text editor', 'About my app', wx.OK)
      dlg.ShowModal()
      dlg.Destroy()
 
  def onExit(self, evt):
      '''点击退出'''
      self.Close(True)
app = wx.App(False)
frame = MainWindow(None, 'Small Editor')
app.MainLoop() #循环监听事情

修正好改文件后,运用py2exe将Python脚本编译成Windows可执行文件,这样就不需求Python解说器了。要运用py2exe,首先要编写一个编译脚本,然后经过Python运转编译脚本即可将其他的脚本编译成可执行文件。以下实例是即将编译成可执行文件的脚本,文件名:setup.py

import distutils
import py2exe
distutils.core.setup(windows=['wxTest.py'])

在setup.py中除了导入必需的模块以外,只要一条句子:

distutils.core.setup(windows=['wxTest.py'])

方括号中便是要编译的脚本名,前边的windows 表明将其编译成GUI程序。假如要编译指令行界面的可执行文件,只要将windows改为console,假如需求将脚本编译成Windows服务,则能够运用service选项。

都修正好之后,将wxTest.py和setup.py放在同一个途径下,cmd进入该途径,输入:

setup.py py2exe

假如在运转时报以下过错:

error: MSVCP90.dll: No such file or directory

是因为没有找到MSVCP90.dll,在windows目录下查找MSVCP90.dll这个文件,然后拷到python装置目录的DLLs下就能够了。

当打包PyQt项目时,或许会报以下过错

ImportError: No module named sip

这时只需求在打包时加上--includes sip就行啦,如:

setup.py py2exe --includes sip

运转完毕之后,会在途径下生成dist和 build两个目录。其间dist目录中便是编译生成的文件。假如要在其他未装置Python的机器上运转编译好的程序,只要将dist目录复制到其他机器上即可。双击运转wxTest.exe,如图:

上一篇:Python完成对文件夹内文本文件递归查找
下一篇:python生成验证码,文字转换为图片

PythonTab微信大众号:

Python技能交流合作群 ( 请勿加多个群 ):

群1: 87464755

群2: 333646237

群3: 318130924

群4: 385100854