如何解决如何在Qt中获取QLineEdit的Click事件?
| 如何在Qt中获取QLineEdit
的Click事件?
我看不到与“ 0”中的点击相关的任何插槽?
解决方法
您需要在扩展QLineEdit的新类中重新实现focusInEvent。以下链接将为您提供帮助。
http://doc.qt.io/qt-5/qwidget.html#focusInEvent
QLineEdit-焦点事件
如何知道QLineEdit是否获得关注?
QLineEdit焦点事件
, 我不认为继承QLineEdit是正确的选择。如果不需要,为什么要子类化?您可以改为使用事件过滤器。检出QObject :: eventFilter。
例:
MyClass::MyClass() :
edit(new QLineEdit(this))
{
edit->installEventFilter(this);
}
bool MyClass::eventFilter(QObject* object,QEvent* event)
{
if(object == edit && event->type() == QEvent::FocusIn) {
// bring up your custom edit
return false; // lets the event continue to the edit
}
return false;
}
, 尽管没有\“ clicked \”或\“ entered \”事件。您可以使用
void cursorPositionChanged(int old,int new)
信号。当用户单击lineedit(如果已启用)时以及在其他一些情况下,将发出此消息,因此您必须验证实际发生了哪些事件,但是我认为这比子类化或某些应用程序使用事件侦听器更容易。
, 我不知道这是否有帮助,
输入文本后,我必须调用一个函数。这就是我做到的。
connect(ui->passwordSetLineEdit,SIGNAL(textEdited(QString)),this,SLOT(onTextEdit(QString)));
当输入文本时,将发出textEdited信号,因此将调用我的onTextEdit函数。
, QLineEdit
没有像clicked()
这样的信号,但是您可以将其子类化,并在custom7 implementation的自定义实现中发出此类信号。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。