Python GUI开发的框架也是多种多样,可以提供给大家的选择也是较多。而我选择了PyQT5——因为可以拖动控件并生成代码。因此也是很容易上手。
一、Windows下搭建PyQT5环境以及配置
相信网上各大配置的教程也是相对丰富,那么在准备搭建环境前,需要提前插入一下对于后续PyQT5应用打包的问题,有人会疑惑还没有搞环境,就开始说打包的问题合适吗?当然这是相当的合适。因为windows 64bit 系统打包出来的exe文件,只能在windows 64bit的操作系统中应用,不能用到win32的系统中;而在win32的系统中打包出来的exe,在64位与32位的系统中都可以使用,明白了吧。好那我们现在就开始吧。
所需要的清单 |
版本 |
Python |
3.7 |
Pycharm |
|
Python与Pycharm的安装此处省略一万个字。
1.1:PyQT5安装及配制:
打开Pycharm后:File->Settings->Project Interpreter
2. 点击“+”,并安装PyQt5、PyQt5-sip、Pyqt5-tool
如果没有使用Pycharm,那么就直接使用pip进行安装,也超方便的。
1.2:PyQT5配置:
接下来将是真正配置的时候了(敲重点了), 回到Setting界面,然后点击Tools->External Tools,
对于Designer(Designer可以拖动控件功能)的配置:
Name:名称随便取
Program:G:\Python\Python36\Lib\site-packages\pyqt5-tools\designer.exe
该路径在Python的安装路径下,找到在Pycharm安装 的pyqt5-tools工具。
Working directory: $FileDir$
其它如图即可,并点击“OK”
PyUic配置:
PyUIC主要是将Designer设计的界面.ui生成python代码,兴奋不,其配置:
Name: PyUic5(你随意就好)
Program: G:\Python\Python36\Scripts\pyuic5.exe
Arguments: $FileName$ -o $FileNameWithoutExtension$_rc.py
Working directory: $FileDir$
对于Program自行到Python的安装目录去查找
配置完成后
点击QTdesigner
那么其它的设计就自由发挥啦。
二、我的第一个UI程序
在Designer设计好后,保存的文件后缀为.ui的,如,那么需要对该文件转成python代码才能够使用。
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(320, 240)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 320, 21))
self.menubar.setObjectName("menubar")
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
此时该程序并不能真正的运行,因此我们需要加入:
import sys
from PyQt5.QtWidgets import QApplication, QWidget
if __name__ == "__main__":
app = QApplication(sys.argv)
Mai = QWidget()
MainUI = Ui_MainWindow()
MainUI.setupUi(Mai)
Mai.show()
sys.exit(app.exec_())
完整的代码如下:
import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(320, 240)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 320, 21))
self.menubar.setObjectName("menubar")
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
if __name__ == "__main__":
app = QApplication(sys.argv)
Mai = QWidget()
MainUI = Ui_MainWindow()
MainUI.setupUi(Mai)
Mai.show()
sys.exit(app.exec_())
运行效果: