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事件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在文本更改时访问文本框的复制值

选择文本时防止 onClick 事件

关于下拉框的onchange事件和onclick选择value值。

文本框的 Javascript 值转换为其他 html 标记 (td) onclick

访问表单 VBA ComboBox 点击事件

html5与js关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的value