美文网首页
pyCharm+qtDesigner+pyinstaller 生

pyCharm+qtDesigner+pyinstaller 生

作者: 国宝级初学者 | 来源:发表于2021-11-19 10:00 被阅读0次

    Python下的图形界面GUI工具繁多,主要用PyQT来入手,其余还有内置的Tkinter,用这货要想设计稍微复杂点的界面简直太累了,而PyQT就是拖动图标

    PyQT功能非常强大,可以用PyQt5做出漂亮的界面;另外它支持可视化界面设计,对新手非常友好。就是你可以通过拖动一些模块就可以完成一些代码才能完成的工作,就跟C++的QT是一样的。

    1. 安装GUI库

    首先需要安装模块PyQt5

    pip install pyqt5

    PyQt5不再提供QtDesigner等工具,需要再安装模块pyqt5-tools

    pip install pyqt5-tools

    这里提一下,使用pycharm一样可以安装三方库,在

    pyCharm, Setting, Project, Python Interpreter, 中 + 新库,与pip的操作是一样的,但是其安装的库的目录与pip是不同的

    Python Interpreter解释器,下图安装在pyCharm创建的工程目录下,venv/Lib/site-package,或者venv/Scripts

    而pip命令安装的是在python的安装目录下,site-package

    新建项目后,解释器默认选择该项目下的,可以改变路径使其恢复

    2. 在Pycharm中配置PyQt5的开发环境

    需要在Pycharm中配置PyQt5的开发环境,采用的是添加外部工具的方法来实现,需要添加两个外部工具,

            一个是QtDesinger,用于界面设计

            另一个是PyUIC,用于编译UI文件编程py文件

    打开Pycharm,File,Settings,Tools,External Tools,点击 + 号,按照如下设置外部工具:

    需要填写的说明:

    Name:QtDesinger

    Program:C:\Program Files\Python36\Lib\site-packages\PyQt5-tools\designer\designer.exe,这货在不同的版本,路径不同,如果是使用pyCharm安装的,那就存在于venv下,在通过文件查找找到其designer.exe精准目录,填进来

    Working directory:$ProjectFileDir$

    意思是该外部工具定义名称为QtDesinger,Working directory设置为当前项目工作目录即可,即创建的UI文件会存储在目录下。

    Name:PyUIC

    Program:C:\Program Files\Python36\Scripts\python.exe

    Arguments:$FileName$ -o $FileNameWithoutExtension$.py

    Working directory:$ProjectFileDir$

    意思是该外部工具定义名称为PyUIC,Arguments的意思是会把UI文件转成同名的py文件,最后的Working directory设置为当前项目工作目录。

    配置完成后,在Pycharm的Tools,External Tools,可以看到刚才配置工具名称,配置工具的目的是方便使用

    3. Qt Designer基本控件介绍

    主界面不同区域介绍:

    工具箱 区域:提供GUI界面开发使用的各种基本控件,如单选框、文本框等。可以拖动到新创建的主程序界面。

    主界面区域:用户放置各种从工具箱拖过来的各种控件。模板选项中最常用的就是Widget(通用窗口)和MainWindow(主窗口)。二者区别主要是Widget窗口不包含菜单栏、工具栏等。可以分别创建对比看看。

    对象查看器 区域:查看主窗口放置的对象列表。

    属性编辑器 区域: 提供对窗口、控件、布局的属性编辑功能。比如修改控件的显示文本、对象名、大小等。

    信号/槽编辑器 区域:编辑控件的信号和槽函数,也可以添加自定义的信号和槽函数。

    显示控件。

             Lable:文本标签,显示文本,可以用来标记控件。

             Text Browser:显示文本控件。用于后台命令执行结果显示。

    输入控件,提供与用户输入交互

             Line Edit:单行文本框,输入单行字符串。控件对象常用函数为Text() 返回文本框内容,用于获取输入。setText() 用于设置文本框显示。

             Text Edit:多行文本框,输入多行字符串。控件 对象常用函数同Line Edit控件。

             Combo Box:下拉框列表。用于输入指定枚举值。

    控件按钮,供用户选择与执行 

             Push Button:命令按钮。常见的确认、取消、关闭等按钮就是这个控件。clicked信号一定要记住。clicked信号就是指鼠标左键按下然后释放时会发送信号,从而触发相应操作。

             Radio Button:单选框按钮。

             Check Box:多选框按钮。

    了解基本控件及作用和获取输入/显示方法后,就可以开始动手实现小需求了。。比如登录界面。获取用户名和密码并显示。 打开Qt Designer,开始拖拽控件实现吧。。

    Step1:打开主界面,选择Widget模板

    Step2:从Widget Box工具箱中拖拽2个label、2个line Edit、2个Push Button以及1个Text Browser。拖完后如下:

    Step3:双击各个控件,修改控件名称(对应属性编辑区中的text,可直接双击控件修改)以及对象名称(对应属性编辑区中的objectName)。对象名称一定记得修改。默认生成的label_1、label_2这种名称无法直接判断到底是对应哪个控件

    Step4:点击File -Save保存实现结果。保存文件名为login.ui。

    使用刚刚创建的工具,右键选择login.ui,外部工具Externel Tools中使用Pyuic,不出意外,我们会发现项目根目录多了一个和UI同名的py文件,但是这个文件并不能直接执行

    4. 调用GUI

    为了后续维护方便,采用界面与业务逻辑相分离来实现。也就是通过创建主程序调用界面文件方式实现。

    这有2个好处。第1就是实现逻辑清晰。第2就是后续如果界面或者逻辑需要变更,好维护。新建call_login.py文件程序,调用login.py文件。

    # -*- coding: utf-8 -*-

    # Form implementation generated from reading ui file 'connect_me.ui'

    #

    # Created by: PyQt5 UI code generator 5.11.3

    #

    # WARNING! All changes made in this file will be lost!

    #导入程序运行必须模块

    import sys

    #PyQt5中使用的基本控件都在PyQt5.QtWidgets模块中

    from PyQt5.QtWidgetsimport QApplication, QMainWindow

    #导入designer工具生成的login模块

    from loginimport Ui_MainWindow

    class MyMainForm(QMainWindow, Ui_MainWindow):

    def __init__(self, parent=None):

    super(MyMainForm,self).__init__(parent)

    self.setupUi(self)

    # 添加登录按钮信号和槽。注意display函数不加小括号()

            self.pushButton_in.clicked.connect(self.display)

    # 添加退出按钮信号和槽。调用close函数

            self.pushButton_out.clicked.connect(self.close)

    def display(self):

    # 利用line Edit控件对象text()函数获取界面输入

            username =self.lineEdit_username.text()

    password =self.lineEdit_password.text()

    # 利用text Browser控件对象setText()函数设置界面显示

            self.textBrowser.setText("登录成功!\n" +"用户名是: " + username +",密码是: " + password)

    if __name__ =="__main__":

    #固定的,PyQt5程序都需要QApplication对象。sys.argv是命令行参数列表,确保程序可以双击运行

        app = QApplication(sys.argv)

    #初始化

        myWin = MyMainForm()

    #将窗口控件显示在屏幕上

        myWin.show()

    #程序运行,sys.exit方法确保程序完整退出。

        sys.exit(app.exec_())

    5.用pyinstaller 打包py文件成exe文件

    可以为程序添加图标,使用ico文件

    生成的文件在dist下面

    pyinstaller -F -w --icon="C:\Users\Shawn\Project\HelloWorld\CarIco\Porsche.ico" event.py    -w去控制台窗口的打包成exe

    相关文章

      网友评论

          本文标题:pyCharm+qtDesigner+pyinstaller 生

          本文链接:https://www.haomeiwen.com/subject/drgdtrtx.html