PyQt5最全88 信号与槽之Override覆盖槽函数
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
import sys
class OverrideSlot(QWidget):
"""
Override(覆盖)槽函数
覆盖的话不需要连接了,已经存在过了,因为已经连接过了。
其实有的还是需要写连接的,比如你非得把某些信号连接到其他槽上,所以这里指的是默认的信号
"""
def __init__(self):
super(OverrideSlot, self).__init__()
self.setWindowTitle('Override 覆盖槽函数')
self.resize(400, 300)
def keyPressEvent(self, e):
if e.key() == Qt.Key_Escape:
self.close()
elif e.key() == Qt.Key_Alt:
self.setWindowTitle('按下Alt键')
if __name__ == '__main__':
app = QApplication(sys.argv)
example = OverrideSlot()
print(example.__doc__)
example.show()
sys.exit(app.exec_())
结果
按下Alt键后
按下ESC后,关闭窗口
其实可以利用这样的方法添加快捷键,也就是绑定到同一个槽函数中,和热键的设置还是有点区别的
为了方便学习,热键和快捷键的区别如下:
系统级快捷键可以全局响应,不论当前焦点在哪里、运行什么程序,按下时都能起作用; 应用程序级热键只能在当前活动的程序中起作用,当应用程序热键的定义程序不活动或在后台运行时,热键就无效了; 控件级的热键则仅在当前控件中起作用。