【发布时间】:2018-04-18 14:07:33
【问题描述】:
我们在 PyQt5 中是否有文本框的 onclick 事件处理程序,就像我们在 JQuery 和 C# 中一样?
如果没有,是否有其他处理文本框点击的方法?
【问题讨论】:
-
你可以使用来自 QTextEdit 的 mousePressEvent 信号吗?
标签: python python-3.x pyqt pyqt5
我们在 PyQt5 中是否有文本框的 onclick 事件处理程序,就像我们在 JQuery 和 C# 中一样?
如果没有,是否有其他处理文本框点击的方法?
【问题讨论】:
标签: python python-3.x pyqt pyqt5
某些小部件(例如 QLineEdit)没有开箱即用的点击信号。但是您可以制作一个继承自您需要的小部件的自定义小部件,给它一个点击信号,然后在 mousePressEvent 上发出它。
class CustomLineEdit(QtWidgets.QLineEdit):
clicked = QtCore.pyqtSignal()
def __init__(self):
super().__init__()
def mousePressEvent(self, QMouseEvent):
self.clicked.emit()
然后你可以将点击的信号连接到你想要的任何东西。
self.line_edit = CustomLineEdit()
self.line_edit.clicked.connect(self.handle_click)
【讨论】:
onmousedown,而不是onclick。您还应该调用基类mousePressEvent,否则您将失去所有正常的QLineEdit 鼠标行为。