pyqt5 设置QEditLine 设置单击事件的信号槽
时间: 2024-01-10 10:03:16 浏览: 73
可以使用 `clicked` 信号来捕获单击事件,并将其连接到一个槽函数中。以下是示例代码:
```python
from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget
from PyQt5.QtCore import Qt, pyqtSlot
class MyLineEdit(QLineEdit):
def __init__(self, parent=None):
super(MyLineEdit, self).__init__(parent=parent)
self.setReadOnly(True)
self.clicked.connect(self.on_clicked)
@pyqtSlot()
def on_clicked(self):
print("clicked")
if __name__ == '__main__':
app = QApplication([])
widget = QWidget()
line_edit = MyLineEdit(widget)
widget.show()
app.exec_()
```
在这个示例中,我们在 `MyLineEdit` 类的构造函数中将 `clicked` 信号连接到了 `on_clicked` 槽函数上。在 `on_clicked` 槽函数中,我们简单地打印了一个语句。当用户单击该文本框时,将会触发 `clicked` 信号,并调用 `on_clicked` 槽函数。
需要注意的是,`clicked` 信号只有在文本框是可编辑的情况下才会被触发,因此在本例中,我们需要将文本框的可编辑性设置为 `True`。如果您需要在文本框不可编辑的情况下也能够捕获单击事件,可以考虑重写 `mousePressEvent` 方法,就像我在上一个问题中所演示的那样。
阅读全文