pip install pyside2
pip install pyqt5-tools
pycharm
在pychar
的Main Menu--setings--tool--External-tools
点击 + 新增自定义工具
1)自定义 QtDesigner
目的:用于生成.ui文件Name :QtDesigner
Group :Qt
Program :PySide2安装路径下的 designer.exe 路径例如:C:\Python\Python39\Scripts\pyside2-designer.exe
Working directory :$ProjectFileDir$
2)自定义 Pyside2-uic
目的:将制作好的.ui文件转化为.py文件Name :Pyside2-uic
Group :Qt
Program :Python安装目录下Scripts\pyside2-uic.exe例如:C:\Python\Python39\Scripts\pyside2-uic.exe
Arguments :$FileName$ -o $FileNameWithoutExtension$.py
Working directory :$FileDir$
3)使用自定义工具编写Qt页面
1、点击Tools->Qt->QtDesigner进入ui设计界面
2、完成ui设计后将.ui文件保存在当前项目路径下
3、右击保存的.ui文件,使用自定义的Pyside2-uic工具将界面转化为Python文件
6、编写qt程序
1、在pycharm中点击Tools->Qt->QtDesigner进入ui设计界面
2、选择Main Window后点击创建
3、将左侧的Widget Box中的Push Button和Text Browser相继拖入到中间的Main Window中
4、在右侧的对象查看器中右击Main Window选择布局下的垂直布局
5、按住ctrl+s保存ui文件,文件名为demo_ui.ui
6、在pycharm中右击生成的demo_ui.ui文件,选择Qt->Pyside2-uic
7、在生成的demo_ui.py同级目录下new->python file,文件名为demo.py
8、demo.py编写如下代码,并run即可得到qt程序,在程序中点击按钮便在文本浏览器显示Hello world
demo.py
from PySide2.QtWidgets import QApplication, QMainWindow
from demo_ui import Ui_MainWindow
import sysclass MainWindow(QMainWindow):def __init__(self):# 首先找到 MainWindow 的父类(就是类 QMainWindow),然后把类 MainWindow 的对象转换为类 QMainWindow 的对象,然后调用对象的__init__()方法# super(MainWindow, self).__init__() # python2写法super().__init__() # python3写法self.ui = Ui_MainWindow()self.ui.setupUi(self)# 按钮signal绑定slot函数self.ui.pushButton.clicked.connect(self.handle)def handle(self):self.ui.textBrowser.append('Hello world')if __name__ == '__main__':app = QApplication(sys.argv)mw = MainWindow()mw.show()sys.exit(app.exec_())
7.发布程序
1、在cmd下执行 pip install pyinstaller
2、在cmd下进入demo.py所在目录,执行pyinstaller demo.py demo_ui.py --noconsole --hidden-import PySide2.QtXml注释: --noconsole 指定不要命令行窗口,否则我们的程序运行的时候,还会多一个黑窗口。 但是我建议大家可以先去掉这个参数,等确定运行成功后,再加上参数重新制作exe。因为这个黑窗口可以显示出程序的报错,这样我们容易找到问题的线索。--hidden-import PySide2.QtXml 参数是因为这个 QtXml库是动态导入,PyInstaller没法分析出来,需要我们告诉它3、这样就会在demo.py目录下产生一个名为dist的目录。里面就有一个名为demo的目录,我们的可执行程序 demo.exe 就在里面
在windows下第2步中的cmd命令,我们可以使用编写package.bat
文件方式执行
package.bat
@echo off
pyinstaller demo.py demo_ui.py --noconsole --hidden-import PySide2.QtXml
pause