我想在程序中点击窗口最大化时干一些事,写了下面的代码,可是运行时不能准确响应,也就是获取的事件是前一次的事件,响应最大化窗口事件需要第二次点击一下别按钮才行,哪位知道的能否帮忙看一下。
void Widget::changeEvent (QEvent * event)
{
Q_UNUSED(event);
if(event->type() == QEvent::WindowStateChange){
QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
if(keyEvent->key() == Qt::WindowMaximized){
dosomething;
}
}
// QWidget::event(event);
}
------解决思路----------------------
转成QKeyEvent是个明显的错误, Qt::WindowMaximized 是个状态标记,应该在收到这个事件时调用?windowState(),获取state来判断。