当前位置:  开发笔记 > 编程语言 > 正文

在Qt小部件获得焦点时获取通知/事件/信号

如何解决《在Qt小部件获得焦点时获取通知/事件/信号》经验,为你挑选了4个好方法。

在Qt中,当一个小部件获得焦点时,如何获得有关它的通知,以便我可以执行一些自定义代码?是否有信号或事件?



1> 小智..:

你可以添加en event filter.
这是使用QtCreator编写的应用程序的示例.此表单有一个名为comboboxQComboBox.

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->comboBox->installEventFilter(this);
    .
    .
    .
}

bool MainWindow::eventFilter(QObject *object, QEvent *event)
{
    if (event->type() == QEvent::FocusOut)
    {
        if (object == ui->comboBox)
        {
            qWarning(object->objectName().toLatin1().data());
        }
    }
    return false;
}


+1正是我要找的,谢谢!

2> mxcl..:

Qt Designer不适用于此级别的WYSIWYG编程.

用C++做:

class LineEdit : public QLineEdit
{
    virtual void focusInEvent( QFocusEvent* )
    {}
};



3> Martin Becke..:

在焦点改变时发送了一个"focusChanged"信号,在Qt 4.1中引入.
它有两个参数,即小部件失去焦点,一个获得焦点:

void QApplication::focusChanged(QWidget * old, QWidget * now)



4> 小智..:

最简单的方法是将插槽连接到QApplication :: focusChanged信号.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有