Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 没有ApplicationActivate或ApplicationStateChange的QEvent_Macos_Qt_Events - Fatal编程技术网

Macos 没有ApplicationActivate或ApplicationStateChange的QEvent

Macos 没有ApplicationActivate或ApplicationStateChange的QEvent,macos,qt,events,Macos,Qt,Events,我希望在用户切换到其他应用程序时收到通知,因此我使用installEventFilter方法捕获事件: MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); this->installEventFilter(this); } bool MainWindow::eventFilter(QObje

我希望在用户切换到其他应用程序时收到通知,因此我使用installEventFilter方法捕获事件:

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

bool MainWindow::eventFilter(QObject *sender, QEvent *event)
{
    qDebug() << event->type();
    return QMainWindow::eventFilter(sender, event);
}
MainWindow::MainWindow(QWidget*父项):
QMainWindow(父级),
用户界面(新用户界面::主窗口)
{
用户界面->设置用户界面(此);
此->installEventFilter(此);
}
bool主窗口::事件过滤器(QObject*发送方,QEvent*事件)
{
qDebug()类型();
返回QMainWindow::eventFilter(发送方,事件);
}
当我切换到另一个应用程序时,会发生以下事件:

  • 窗口停用
  • 激活变化
  • 更新请求
  • 油漆
当我切换到另一个应用程序时,我不应该收到ApplicationActivate(似乎已弃用)或ApplicationStateChange吗


我在MacOS下,使用以下Qt版本进行测试:5.1.1、5.2.0、5.2.1。

您应该连接到
QGuiApplication::applicationStateChanged
信号。如果它没有发射,那就是一个错误,应该报告。不过,我认为你不会那样做

ApplicationStateChange
事件由Qt内部使用,您不必担心它。它可能被发送到应用程序实例。此外,所有这些都是针对Qt5.2.x的。对于5.1和更早版本,情况有所不同