【发布时间】:2014-05-27 10:03:01
【问题描述】:
在 Linux Centos 上工作,我的任务是忽略我的应用程序任务栏菜单中的最大化按钮事件。基本上我不希望我的应用程序最大化。 所以我实现了 QDialog::changeEvent(QEvent*) 和 EventFilter,希望能够在它们进来时忽略适当的事件:
void MyDialog::changeEvent(QEvent* event)
{
if (event->type() == QEvent::WindowStateChange)
{
cout << "window state change event! window state:" << windowState() << endl;
//should i perhaps do event->accept() or event->ignore() here?
}
else
{
QDialog::changeEvent(event);
}
}
bool MyDialog::eventFilter(Qobject *object, QEvent* event)
{
if(event->type() == QEvent::WindowStateChange && isMaximized() )
{
event->ignore();
return truel;
}
return QDialog::eventFilter(object, event);
}
不幸的是,这也不起作用。事件仍在进行中,并且窗口仍在最大化。有什么办法可以解决这个问题!?
提前致谢!
【问题讨论】: