QT之全局信号其一focusChanged

来源:互联网 发布:java除法取整 编辑:程序博客网 时间:2024/05/01 09:38

QT的<QApplication>提供了很多全局的信号,在程序的任何位置都可以接收处理,如:

void focusChanged(QWidget *old, QWidget *now)void applicationStateChanged(Qt::ApplicationState state)void commitDataRequest(QSessionManager &manager)void focusObjectChanged(QObject *focusObject)void focusWindowChanged(QWindow *focusWindow)void fontDatabaseChanged()void lastWindowClosed()void layoutDirectionChanged(Qt::LayoutDirection direction)void paletteChanged(const QPalette &palette)void primaryScreenChanged(QScreen *screen)void saveStateRequest(QSessionManager &manager)void screenAdded(QScreen *screen)void screenRemoved(QScreen *screen)

当系统焦点发生改变的时候,就会发出focusChanged信号,系统内其他程序都可以接收这个信号

下面我介绍一下focusChanged的使用方法

1、把focusChanged信号和自定义的槽关连起来,如

    connect(qApp, SIGNAL(focusChanged(QWidget *, QWidget *)),  this, SLOT(myFocusChanged(QWidget *, QWidget *)));
2、定义槽函数,如

void keyClass::myFocusChanged(QWidget *, QWidget *nowWidget){    if (nowWidget->inherits("QLineEdit"))    {        ... ...    }}
可以在槽函数里判断,过滤想要的控件。






原创粉丝点击