我使用events QEvent::ApplicationActivate和QEvent::ApplicationDeactivate在需要时显示/隐藏应用程序的某些部分。
但现在,这些事件被标记为不受欢迎的:
这件事已经被否决了。使用ApplicationStateChange代替。
所以我试着转到这个活动。它应该在什么时候触发,但是我找不到一种方法来获得应用程序状态,它使用某种类型的强制转换或任何getter。
有什么想法吗?
发布于 2014-01-24 18:30:51
与任何其他事件一样,您需要将其转换为更特定的类型来获取事件属性。这个班是QApplicationStateChangeEvent。令人惊讶的是,文档对此保持沉默,但它是存在的,并在event.h中声明。在我的QT5.1安装中,以下代码运行良好:
#include <QApplicationStateChangeEvent>
bool MainWindow::eventFilter(QObject *o, QEvent *e) {
if (e->type() == QEvent::ApplicationStateChange) {
qDebug() << "state:"
<< static_cast<QApplicationStateChangeEvent*>(e)->applicationState();
}
return QMainWindow::eventFilter(o, e);
}https://stackoverflow.com/questions/21339302
复制相似问题