赞
踩
Tkinter是python内置的GUI实现模块,但需要手动去搭建组件,调整样式。PyQt实现了类似Qt creator的功能,可以直接在界面通过拖动的方式调整类似于按钮、输入框等,很大的简化了使用。鉴于自己安装的是python2.7,所以使用PyQt4版本。
1. 安装
1.1 python2.7
1.2 开发环境 Pycharm
1.3 PyQt4
PyQt4 下载链接 https://sourceforge.net/projects/pyqt/files/PyQt4/
PyQt4 Python2.7 Windows *64版 下载链接https://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-4.9.4/
也可以pip install (如果你安装上的话,反正博主pip 是死活成功不了)
(PyQt5 下载链接https://sourceforge.net/projects/pyqt/files/PyQt5/)
如下图:一定选好版本
2. 配置
打开Pycharm,File ->Settings ->Tools ->External Tools,添加扩展组件
! 注意PyUIC 这个操作是有中间的Arguments的!
-m PyQt4.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
添加完成后,在Tools ->External Tools查看是否添加成功
3、点击QtDesigner,会跳出Qt Designer设计界面
此时就可以在该窗口进行GUI设计了
设计完成UI界面后,保存UI文件到文件夹路径, 这个路径很重要,不要保存错了,不然后面转换的时候,会找不到UI文件路径 我是在工程中新建了一个UI文件夹,专门存放.ui文件 注意:这个路径和上面那个Py uic的配置的Working Directory的路径要保持一致
UI文件转Py文件 右键UI文件选择Py UIC 然后会自动生成一个Py文件
这个是生成的.py代码
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'ui-a.ui' # # Created: Wed Jun 12 17:14:40 2019 # by: PyQt4 UI code generator 4.9.4 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s class Ui_firstMainWindow(object): def setupUi(self, firstMainWindow): firstMainWindow.setObjectName(_fromUtf8("firstMainWindow")) firstMainWindow.resize(556, 444) firstMainWindow.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor)) self.centralwidget = QtGui.QWidget(firstMainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.queren = QtGui.QPushButton(self.centralwidget) self.queren.setGeometry(QtCore.QRect(430, 360, 93, 28)) self.queren.setObjectName(_fromUtf8("queren")) firstMainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(firstMainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 556, 23)) self.menubar.setObjectName(_fromUtf8("menubar")) firstMainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(firstMainWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) firstMainWindow.setStatusBar(self.statusbar) self.retranslateUi(firstMainWindow) QtCore.QMetaObject.connectSlotsByName(firstMainWindow) def retranslateUi(self, firstMainWindow): firstMainWindow.setWindowTitle(QtGui.QApplication.translate("firstMainWindow", "UI设计师", None, QtGui.QApplication.UnicodeUTF8)) self.queren.setText(QtGui.QApplication.translate("firstMainWindow", "确认", None, QtGui.QApplication.UnicodeUTF8)) if __name__=="__main__": import sys reload(sys) # sys.setdefaultencoding( "utf-8" ) # 这两步是为了解决print中文报ascii编码错误 app=QtGui.QApplication(sys.argv) widget= QtGui.QMainWindow() ui= Ui_firstMainWindow() ui.setupUi(widget) widget.show() sys.exit(app.exec_())
- 一定在最下面加入以下代码,然后运行,即可看到效果
-
-
- if __name__=="__main__":
- import sys
-
- reload(sys) #
- sys.setdefaultencoding( "utf-8" ) # 这两步是为了解决print中文报ascii编码错误
-
- app=QtGui.QApplication(sys.argv)
- widget= QtGui.QMainWindow()
- ui= Ui_firstMainWindow()
- ui.setupUi(widget)
- widget.show()
- sys.exit(app.exec_())
把py文件和图标(必须要 .ico 格式的,可以在线转)放在同一个文件下
cd 到相应的目录下,执行:
pyinstaller -F -i 1.ico 2.py 或
pyinstaller.exe -w -F xx\xx\xxx.py
(默认运行时有终端黑窗口,加 -m 会取消黑窗口)
-w: 直接发布的exe应用带命令行调试窗口,在指令内加入-w命令可以屏蔽掉命令框(调试阶段可不加-w, 最终发布时加入-w参数)
-F: 这里是大写。使用-F指令可以把应用打包成一个独立的exe文件,否则是一个带各种dll和依赖文件的文件夹
-p :这个指令后面可以增加pyinstaller搜索模块的路径。因为应用打包涉及的模块很多。这里可以自己添加路径。不过经过笔者测试,site-packages目录下都是可以被识别的,一般不需要再手动添加
-i 指令
表示可执行文件的图标,后面跟着图标文件
执行完成后,在dist文件下会生成exe文件,点击执行
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。