赞
踩
PyQt5让我们可以使用python语言创建图形应用程序
Qt Designer提供可视化的方式,让我们可以通过拖动各种组件进行图形应用程序的设计
不管是在Windows还是Linux,只要安装了Qt Designer就可以开始进行图形化应用程序的设计,产生的文件是.ui
在很多教程中,介绍如何在pycharm和vscode中进行配置来使用Qt Designer,其实本质上还是用过软件来执行命令调用Qt Designer的可执行文件而已,与你直接打开***\\site-packages\\pyqt5-tools\\designer.exe
(Windows)和终端执行cd /usr/lib/x86_64-linux-gnu/qt5/bin/ && ./designer
(Ubuntu Linux)并无不同,前提是已经安装好了pyqt5-tools
pyuic5则是通过pyuic5的命令将.ui的文件转化为.py文件
pyuic5 helloworld.ui -o helloworld.py
总的来说就是Qt Designer通过拖拽的方式放置控件,并实时查看控件效果进行快速UI设计,最终生成.ui文件(实质上是XML格式的文件),.ui文件可以通过pyuic工具转换成.py文件。
Windows:PyQt5安装与PyCharm配置Qt Designer
Linux:
conda create -n pyqt python=3.8
pip install pyqt5
确认版本也是非常重要的,因为pyqt5很强调版本兼容问题,说明在这方面确实可能遇到问题,要是代码换了个环境,突然不能正常使用,先考虑是否版本兼容问题
通过pyuic5将ui文件重新生成python文件也许可以解决
pip show pyqt5
# Name: PyQt5
# Version: 5.15.2
sudo apt-get install qttools5-dev-tools
sudo apt-get install qttools5-dev
安装之后可执行文件designer在/usr/lib/x86_64-linux-gnu/qt5/bin/
下
cd /usr/lib/x86_64-linux-gnu/qt5/bin/
./designer
执行即可打开Qt Designer,编辑之后File > Save As保存为.ui文件
将ui转为python代码
pyuic5 path/to/helloworld.ui -o path/to/helloworld.py
上面的命令生成的代码只是一些定义的函数,并没有调用,执行之后并不会有任何界面显示,需要在另外的python文件中进行import之后调用;
如果想要在单独一个文件中执行并显示图形结果,可以使用
pyuic5 -x path/to/helloworld.ui -o path/to/helloworld.py
添加参数-x
即--execute
,生成的Python代码包括少量其他代码,这些代码在作为独立应用程序执行时会创建并显示GUI。
添加pyqt integration
插件
File > Preferences > Settings
,搜索pyqt integration
找到Pyqt-integration > Qtdesigner:path
,里面输入designer的路径/usr/lib/x86_64-linux-gnu/qt5/bin/designer
设置好之后在vscode编辑器的左侧文件目录栏空白位置邮件,选择PYQT:New Form即可打开Qt Designer
编辑保存.ui之后,右键该文件,选择PYQT:Compile Form,即可将.ui转为.py
生成的py文件里提示,不要手动去修改该文件,因为当再次执行pyuic5之后,所有的修改都会被覆盖,所以如果要运行这个py文件,就新建一个独立的py文件去import,调用就好了
# main.py
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
import helloworld # 生成的文件
if __name__ == '__main__':
app = QApplication(sys.argv)
MainWindow = QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
如果要每次执行pyuic5就生成单独可以执行的文件,就在Pyqt-integration > Pyuic > Compile: Add Options
添加-x
参数
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。