此总结主要参考下面这篇文章:PyQt5事件和信号
例子1、2的self继承自QWidget, 1继承自QWidget是因为vbox是QWidget类独有的
1. 信号槽 Signals & slots
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QWidget, QLCDNumber, QSlider, QVBoxLayout, QApplication)
# 这里导入的包并不都是非必须的,只是对于展示信号槽功能这个示例来说是有必要的
lcd = QLCDNumber(self)
sld = QSlider(Qt.Horizontal, self)
vbox = QVBoxLayout() # 垂直布局
vbox.addWidget(lcd)
vbox.addWidget(sld)
self.setLayout(vbox)
# 形如Object.signal.connect()
sld.valueChanged.connect(lcd.display)
2. 重新实现事件函数
def keyPressEvent(self,e):
if e.key() == Qt.Key_Escape:
self.close()
# keyPressEvent是已经存在的函数,这里把他重新改写
# 除了示例中的这个,还有mousePressEvent()、paintEvent()等
综合前面两个功能,得到如下示例:
# -*- coding: utf-8 -*-
import sys