pyqt QWidget 添加信号槽
时间: 2023-07-23 21:28:10 浏览: 120
QWidget加载QML界面,并通过信号槽交互
4星 · 用户满意度95%
在PyQt中,可以通过为QWidget对象添加信号槽来处理用户输入和其他事件。以下是一个简单的示例,演示如何将信号和槽连接到QWidget对象:
```
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QLabel
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('My Widget')
self.setGeometry(100, 100, 300, 200)
self.label = QLabel(self)
self.label.setText('Click me')
self.label.setAlignment(Qt.AlignCenter)
self.label.setFixedSize(100, 50)
self.label.mousePressEvent = self.on_label_clicked
def on_label_clicked(self, event):
self.label.setText('Clicked!')
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
```
在上面的代码中,我们创建了一个自定义的QWidget子类,并在其构造函数中设置窗口标题和大小。我们还添加了一个QLabel小部件,为其设置文本和大小,并将其添加到我们的QWidget中。
接下来,我们将on_label_clicked()方法与QLabel的mousePressEvent事件连接起来。这意味着当用户单击QLabel时,on_label_clicked()方法将被调用。在此示例中,我们将QLabel的文本更改为“Clicked!”。
最后,我们创建了一个QApplication对象,并将MyWidget对象添加到其事件循环中。这使得我们的QWidget可以响应用户输入和其他事件。
阅读全文