目录
一、实战场景
实战场景:Python 中的 PyQt6事件触发者
二、主要知识点
三、菜鸟实战
某些时候,需要知道事件的触发者是谁,PyQt6 有获取事件触发者的方法。
import sys
from PyQt6.QtWidgets import QMainWindow, QPushButton, QApplication
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
btn1 = QPushButton("Button 1", self)
btn1.move(30, 50)
btn2 = QPushButton("Button 2", self)
btn2.move(150, 50)
btn1.clicked.connect(self.buttonClicked)
btn2.clicked.connect(self.buttonClicked)
self.statusBar()
self.setGeometry(300, 300, 450, 350)
self.setWindowTitle('Event sender')
self.show()
def buttonClicked(self):
sender = self.sender()
msg = f'{sender.text()} was pressed'
self.statusBar().showMessage(msg)
def main():
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec())
if __name__ == '__main__':
main()
本例中有两个按钮。 buttonClicked
调用触发者方法确定了是哪个按钮触发的事件。
btn1.clicked.connect(self.buttonClicked)
btn2.clicked.connect(self.buttonClicked)
两个按钮绑定了同一个插槽。
def buttonClicked(self):
sender = self.sender()
msg = f'{sender.text()} was pressed'
self.statusBar().showMessage(msg)
在应用的状态栏里,显示了是哪个按钮被按下。
菜鸟实战,持续学习!