PyQt5中文本框的OnClick事件? [复制]
Posted
技术标签:
【中文标题】PyQt5中文本框的OnClick事件? [复制]【英文标题】:OnClick event for textboxes in PyQt5? [duplicate] 【发布时间】:2018-04-18 14:07:33 【问题描述】:我们在 PyQt5 中是否有文本框的 onclick 事件处理程序,就像我们在 JQuery 和 C# 中一样?
如果没有,是否有其他处理文本框点击的方法?
【问题讨论】:
你可以使用来自 QTextEdit 的 mousePressEvent 信号吗? 【参考方案1】:某些小部件(例如 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)
【讨论】:
我用我的函数名替换了 self.handke_click:self.line_edit = CustomLineEdit() self.line_edit.clicked.connect(self.open_file_name_dialog) 但它不起作用。它甚至没有在窗口上显示文本框。 如果窗口中没有显示行编辑,这意味着您很可能没有将其添加到您的视图中。您必须像任何其他小部件一样将自定义行编辑添加到您的视图中。 这相当于onmousedown
,而不是onclick
。您还应该调用基类mousePressEvent
,否则您将失去所有正常的QLineEdit
鼠标行为。以上是关于PyQt5中文本框的OnClick事件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
关于下拉框的onchange事件和onclick选择value值。
文本框的 Javascript 值转换为其他 html 标记 (td) onclick
html5与js关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的value