微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Qt中获取QLineEdit的Click事件?

如何解决如何在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 举报,一经查实,本站将立刻删除。