1.配置
Python3 PyQt5 pycharm 环境搭建见配置教程
安装完PyQt5之后,并没有Qt Designer.exe,还需进一步的安装。
其安装方法是,在cmd中输入如下命令
pip install PyQt5-tools -i https://pypi.douban.com/simple --trusted-host=pypi.douban.com
这个命令是镜像下载,下载的速度非常快,也可以使用通用的下载命令
pip install PyQt5-tools
这个命令就比较好记忆了,但是很慢。
2.原理
类似于matlab gui里的callback回调函数,pyqt5 有信号槽机制:
信号是事件发生,槽是对应的回调函数
信号和槽是一种高级接口,应用于对象之间的通信,它是 QT 的核心特性,也是 QT 区别于其它工具包的重要地方。它为高层次的事件处理自动生成所需要的附加代码。在我们所熟知的很多 GUI 工具包中,窗口小部件(widget)都有一个回调函数用于响应它们能触发的每个动作,这个回调函数通常是一个指向某个函数的指针。但是,在QT中信号和槽取代了这些凌乱的函数指针,使得我们编写这些通信程序更为简洁明了
3.界面与逻辑代码分离
利用Qt designer我们可以做到界面与逻辑分离
3.1首先利用Qt designer制作好界面
3.2将界面利用Pyuic生成源码
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'LSTM.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import *
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(618, 446)
Form.setAutoFillBackground(False)
Form.setInputMethodHints(QtCore.Qt.ImhNone)
self.horizontalLayoutWidget_2 = QtWidgets.QWidget(Form)
self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(0, 10, 241, 41))
self.horizontalLayoutWidget_2.setObjectName("horizontalLayoutWidget_2")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_2)
self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.train = QtWidgets.QPushButton(self.horizontalLayoutWidget_2)
self.tr