Pyqt5教程四:事件与信号
大约 1 分钟
这篇文章是Python GUI教程系列的第四篇,将介绍Qt编程中的事件与信号机制;如果你英文较好,可以参考这里的文章:PYQT5
STEP 1:Qt中的通信机制:事件与信号
界面中各组件及界面之间往往需要消息的传递,比如:点击一个按钮跳转到一个网页等。Qt中通过信号与槽机制来传递信号
事件与信号:事件指的是一个行为的触发,比如:点击按钮、关闭页面、最大化最小化窗口等,而信号就是在事件触发时产生的消息,比如:点击关闭按钮产生一个关闭窗口的消息,等。
STEP 2:事件与信号实现:以下程序在滑动条值改变的时候发送一个消息(自身的值)给LCD显示窗口,然后LCD显示器实时显示滑动条的值。
# -*- coding: utf-8 -*- """ 该程序实现布局器的复合使用 Author: yooongchun Time: 2018-05-09 """ import sys from PyQt5.QtWidgets import QPushButton,QWidget,QLineEdit,QTextEdit, QAction, qApp, QApplication,QWidget,QLabel,QGridLayout,QLCDNumber,QSlider,QVBoxLayout from PyQt5.QtGui import QIcon from PyQt5.QtCore import Qt # 事件与信号 class Event(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): lcd = QLCDNumber(self) sld = QSlider(Qt.Horizontal, self) vbox = QVBoxLayout() vbox.addWidget(lcd) vbox.addWidget(sld) self.setLayout(vbox) sld.valueChanged.connect(lcd.display) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Signal & slot') self.show() if __name__=="__main__": app = QApplication(sys.argv) ex = Event() sys.exit(app.exec_())