pyqt5 label 设置点击事件
时间: 2023-05-22 19:04:57 浏览: 187
可以通过重写 QLabel 的 mouseReleaseEvent 方法来实现点击事件。
具体代码如下:
```python
from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow
from PyQt5.QtCore import Qt
class ClickableLabel(QLabel):
clicked = pyqtSignal()
def mouseReleaseEvent(self, event):
self.clicked.emit()
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.label = ClickableLabel(self)
self.label.setText("点击我!")
self.label.setAlignment(Qt.AlignCenter)
self.label.setFixedSize(150, 150)
self.label.setStyleSheet("background-color: blue; color: white;")
self.setCentralWidget(self.label)
self.label.clicked.connect(self.on_label_clicked)
def on_label_clicked(self):
print("Label 被点击了!")
if __name__ == '__main__':
app = QApplication([])
main_win = MainWindow()
main_win.show()
app.exec_()
```
在这个示例中,我们继承了 QLabel,并重写了它的 mouseReleaseEvent 方法,在该方法中发射一个 clicked 信号,表示 Label 被点击。
接着我们创建了一个带有 ClickableLabel 的 MainWindow,并将其设置为中心部件。我们将 Label 上点击事件与 MainWindow 中的 on_label_clicked 方法关联起来,这样当 Label 被点击时,可以在控制台输出相应的信息。
运行该程序后,当您单击 Label 时,将在控制台中看到一条消息。
阅读全文