PyQt5简要

有时候人只需要一只温暖的手的触摸,就像是拥有了整个世界。

命令行界面虽然可以运行代码完成功能,但是相对来说图形化界面更好友好,花点小时间看看PyQT5的教程了解一下还是很有用处的。

下载安装

注意PyQt5默认只支持Python3。

下载使用pip即可

pip install PyQt5
pip install PyQt5-tools

对于可视化需要一大堆的按钮啊,窗口啊之类的,如果每个窗口都要用代码去写指定在哪个地方就很麻烦,这个时候QtDesigner的用处就体现出来了,提供一个画图功能有点像Delphi,让你把按钮窗口之类的都画上去,然后自动生成python的代码。

如果是用pycharm开发的话,需要在Settings–>Project–>Project Interpreter加号中–>选择pyqt5和pyqt5 tools 点击安装

然后继续配置Settings -> Tools -> External Tools,点击左上角的绿色加号,Name填入QtDesigner(方便后续使用,名称无所谓)。Program选择我们安装的PyQt5-tools下面的designer.exe。Working directory则选择我们的工作目录。然后点击OK,则添加了QtDesigner作为PyCharm的外置工具。

然后添加PyUIC(UI转换工具),PyUIC的Program为Python.exe,在Python的安装目录下面的Scripts目录下,Working directory同理设为我们的工作目录,Arguments则填入如下代码:

-m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py

最后添加pyrcc用于PyQt5的资源文件转码。具体配置与上述内容相同,Arguments填入:

$FileName$ -o $FileNameWithoutExtension$_rc.py

点击apply,再pycharm中即可看到拓展的工具

画界面

点击Designer即可进入画图页面

这个时候可以根据需要加入按钮,选择栏之类的,关于desginer这一块的英文功能按钮,以后慢慢做笔记详解。

分别是按钮,表单的控件,中间是你画出来的可视化界面,右边的是你的控件详细属性。

生成代码

当你把可视化界面画完后,保存会生成一个xxx.ui文件,这个时候你在pycharm操作中要注意,鼠标点中刚刚生成的xxx.ui,然后点击PyUIC即可将你画好的界面编程代码。

调用界面

运行这个转换好的Python文件是无法显示任何窗口的。因为这个Python文件只有定义主窗口以及其控件的代码,并没有程序入口的代码。为了秉持视图与逻辑分离的原则,我们再编写一个新的脚本来调用这个文件,并且创建一个窗口。

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys

xxxx
生成的可视化界面代码
xxx

class MyWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
    super(MyWindow, self).__init__(parent)
    self.setupUi(self)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    myWin = MyWindow()
    myWin.show()
    sys.exit(app.exec_())

打包成exe

打包时要添加-–paths来指定PyQt5的路径

举个例子:

pyinstaller -F -w --paths=C:\Users\Lenovo\AppData\Local\Programs\Python\Python36\Lib\site-packages\PyQt5\Qt\bin --paths=C:\Users\Lenovo\AppData\Local\Programs\Python\Python36\Lib\site-packages\PyQt5\Qt\plugins  main.py

参考链接

参考链接

坚持原创技术分享,您的支持将鼓励我继续创作!
------ 本文结束 ------

版权声明

LangZi_Blog's by Jy Xie is licensed under a Creative Commons BY-NC-ND 4.0 International License
由浪子LangZi创作并维护的Langzi_Blog's博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Langzi_Blog's 博客( http://langzi.fun ),版权所有,侵权必究。

0%