基本思想:
1 利用pyside开发python版图形界面程序(利用Qt开发图形界面程序)
2 利用py2exe将python脚本转换成windows上的可独立执行的可执行程序(不需要安装python和Qt)
3 将exe程序和相关库打包成安装程序。
1 pyside
安装pyside后,~\Python27\Lib\site-packages\PySide目录里,我们可以利用designer.exe这个程序,编辑图形界面。界面如下:
设计好界面后,生成了XXX.ui文件。这时候,我们进入~\Python27\Scripts目录,使用pyside-uic.exe执行如下命令:
pyside-uic E:\user\PycharmProjects\XXX\XXX.ui -o XXX_ui.py
我们把XXX_ui.py放在项目里,然后编辑py脚本。例如:
from
PySide.
QtGui
import
*
from
XXX_ui
import
Ui_Form
class
LoginForm
(QDialog
):
def
__init__
(
self, parent=
None
):
QDialog.
__init__
(
self, parent
)
self.
ui= Ui_Form
(
)
self.
ui.
setupUi
(
self
)
好了,剩下的就是完成你的程序了。
2 py2exe
完成程序开发后,我们现在打算将其转换成windows上的可独立执行的可执行程序(不需要安装python和Qt)。首先需要编写一个setup.py的脚本,代码如下:
from
distutils.
core
import
setup
import
py2exe
# Set options
options =
{
'py2exe':
{
'dll_excludes':
[
'w9xpopen.exe'
]
#This file is for win9x platform
}
}
# Setup
setup
(
options = options,
windows =
[
{
'script':
'Logspliter.py',
"icon_resources":
[
(
1,
"logspliter.ico"
)
]
}
]
)
下面我们执行如下命令:
python setup.py py2exe
如果顺利的话,会出现如下信息:
进入项目目录,我们就会看到dist文件夹和build文件夹,其中dist就是我们需要的真正内容。进入dist文件夹,看看生成的exe是否可以正常运行。如果可以,恭喜你,成功了!我们只需要把dist文件夹发给别人,不管他们的电脑是否安装了python和Qt,你的程序都可以正常使用。不过使用这种方式还是有缺点的,就是哪怕你写个hello world程序,dist文件夹也会很大,一般在20-30M左右。
3 inno setup
最后一步,使用inno setup将dist文件夹打包起来,生成安装文件。这样我们就可以把这个独立的安装文件与他人分享了。
写起来很简单,但是在开发的过程中,还是遇到了很多问题的。
问题1:窗口如何固定大小?
答:1 设置它的最大大小和最小大小,并且使它们的值相等,都等于当前你设置的窗口尺寸。
self.setMinimumSize(X, Y)
self.setMaximumSize(X, Y)
2 使用setFixedSize()。
self.setFixedSize(X,Y)
问题2:使用python setup.py py2exe,生成可执行文件时,报如下错误:
from pkg_resources import load_entry_point ImportError: No module named pkg_resources
答:百度一下,没找到结果。Google一下,最终在Stackoverflow上找到答案了,其实也简单,应该是python的setuptools安装得有问题,使用如下命令:
curl http://python-distribute.org/distribute_setup.py | python
不过,需要说明的是,这是在linux下的命令,翻译一下,就是我们把distribute_setup.py脚本下载下来,使用python执行一下就可以了。
来自为知笔记(Wiz) http://our2848884.blog.163.com/blog/static/14685483420118873830876/