用PyQt5.0制作一个GUI应用程序(结合Eric6,使用QT设计师)

发布时间:2018年01月22日 阅读:2383 次

1,前面几篇博文,已经介绍了如何安装Python的编译环境,如何安装GUI相关的软件,现在要做一个简单的人机交互小程序,并打包成一个EXE文件,体验一下整体的流程。


2,先说一个进行一下操作的前提条件:安装了Python3.6 ,安装了pyqt5.6  ,安装了eric6 ,安装了pyinstaller3.3。这些都是开源软件,可以去 https://pypi.python.org/pypi  查找需要的资源。


3,再说一下大致的步骤。首先通过Eric6软件,创建一个界面,包括两个按钮,一个文本显示框;然后将这个界面编译一下,成为Python代码,其实这个代码完全可以自己手工敲,不过比较慢;然后再继续在这个编好的代码里面添加内容,主要是编写各个信号对应的处理函数,这个“信号与槽”的概念,就像单片机里面中断处理函数与中断源的概念一样,就是来了一个中断,进入一下处理函数;然后就实现了程序能够响应用户的操作;最后通过pyinstaller打包成一个独立的exe文件,方便其他用户使用。


4,首先新建一个项目,然后再新建一个窗体,这个窗体的名字是自己随意起的,窗体类型就选择对话框吧。建好窗体之后会自动进入QT设计师的界面,进行拖拽搭建界面。

1新建项目.png      2新建窗体.png 3QT设计师的默认界面.png


5,拖拽出一个窗体。

4拖拽界面.png



6,查看三个控件的名称,这些将会是在Python编程时候的名称,文本显示框名称是:textBrowser ,关闭按钮的名称是:pushButton ,显示文字按钮的名称是:pushButton_2 。名称的查看方法是鼠标单击某个控件,然后看它的

objectName 属性,也是右边的从上到下的第一个属性。

5查看控件属性.png


7,保存这个窗体。可以关闭QT设计师了,回到Eric6的界面,右键这个窗体,并编译,这时候就已经生成Python代码了,可以直接拷贝到Python环境里使用了。再Eric6环境里也可以直接F2快捷键,运行这个代码。


8,再次打开QT设计师界面,通过直接双击那个UI文件进入。添加“关闭窗体”按钮的信号与槽的相关内容。我们的目的是单击这个按钮后,窗体直接关闭。弄好之后再编译一次。

8添加关闭窗体的信号.png


9,编译好之后,会生成一个.py结尾的文件,那个是可以用Python打开的,打开试一下,会发现弹出一个窗体,和我们设计的一样,而且单击那个按钮会关闭整个窗体。使用任何一个文本编辑器都行,我们给这个文件添加代码。

我个人喜欢用spyder这个环境,所以我就用spyder打开,并修改代码。 首先先搭建好一个框架,然后再往里面填充代码。


搭建框架.png


10,填充的代码如下。

10完成代码添加.png

11,现在公开整个代码,小伙伴们如果安装了齐全的变异环境,可以直接新建.py文件,并运行试试。

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

# Form implementation generated from reading ui file 'C:\Users\Administrator\Desktop\Test\testui.ui'
#
# Created by: PyQt5 UI code generator 5.6
# 
# WARNING! All changes made in this file will be lost!
#
#零妖老哥QQ:1827702167

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(615, 398)
        Dialog.setSizeGripEnabled(True)
        self.textBrowser = QtWidgets.QTextBrowser(Dialog)
        self.textBrowser.setGeometry(QtCore.QRect(40, 80, 256, 192))
        self.textBrowser.setObjectName("textBrowser")
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(370, 100, 91, 51))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(Dialog)
        self.pushButton_2.setGeometry(QtCore.QRect(330, 230, 161, 91))
        self.pushButton_2.setObjectName("pushButton_2")

        self.retranslateUi(Dialog)
        self.pushButton.clicked.connect(Dialog.close)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
        
        self.pushButton_2.clicked.connect(self.Show_Txt)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.textBrowser.setHtml(_translate("Dialog", "显示的文字示意:"))
        self.pushButton.setText(_translate("Dialog", "关闭窗体"))
        self.pushButton_2.setText(_translate("Dialog", "显示文字"))
        
    a=0 
    def Show_Txt(self,Dialog):
        self.textBrowser.append("添加一行文本"+str(self.a))
        self.a = self.a + 10

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())

12,程序运行的界面截图如下:

11做好的界面.png


13,使用  pyinstaller 打包生成可执行文件。

首先,我确认一下我这个.py文件的完整路径  C:\Users\Administrator\Desktop\Test   ,然后又确认了它的名字全称: Ui_testui.py 然后进入命令行界面。

生成exe文件.png

 14,至此,所有的工作都已经做完,测试生成的EXE文件吧。






Tag:GUI应用 PyQt5.0 用户界面 Eric6 QT设计师
相关文章