qt 窗口内的QLabel如何监听双击
时间: 2024-05-13 21:17:58 浏览: 286
要在 Qt 窗口内的 QLabel 中监听双击事件,可以通过继承 QLabel 并重写 mouseDoubleClickEvent() 方法来实现。
以下是一个示例代码:
```python
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import Qt
class DoubleClickLabel(QLabel):
def __init__(self, parent=None):
super(DoubleClickLabel, self).__init__(parent)
def mouseDoubleClickEvent(self, event):
if event.button() == Qt.LeftButton:
print("Double clicked!")
event.accept()
class MainWindow(QWidget):
def __init__(self):
super().__init__()
label = DoubleClickLabel(self)
label.setText("Double click me!")
label.setAlignment(Qt.AlignCenter)
self.setGeometry(100, 100, 300, 200)
self.setWindowTitle("Double Click Label")
self.show()
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
app.exec_()
```
在上面的代码中,我们定义了一个 DoubleClickLabel 类,继承自 QLabel。然后我们重写了 mouseDoubleClickEvent() 方法,并在其中判断是否是左键双击事件。如果是,就打印一条消息。
然后在 MainWindow 中,我们创建了一个 DoubleClickLabel 实例,并将其添加到窗口中。当用户双击这个标签时,就会触发 mouseDoubleClickEvent() 方法,输出一条消息。
运行代码后,双击标签即可看到输出的消息。
阅读全文