美好的一天!
出现问题:主窗口(例如MyApp)在后台工作(在所有其他窗口后面或托盘中),无需显示它。经过一段时间后,会出现一些提醒StayOnTop对话框(父亲= 0,不与主窗口绑定),并要求进行一些用户交互。对话框关闭后,我想让一个应用程序窗口用户当前处于活动状态,并且用户继续完成他的工作,而不是切换到MyApp。但是,代替上述行为,主要的MyApp窗口出现,用户强制切换回他的窗口(作业) - 不方便。
关闭对话框后如何防止出现MyApp主窗口?需要安装一些事件过滤器或访问OS API吗? Mac,Windows,Linux中存在问题。
答案 0 :(得分:0)
也许只是在对话调用后尝试调用hide方法?其他可能性 - 尝试设置:
http://doc.qt.io/qt-4.8/qwidget.html#windowFlags-prop至Qt::Popup
。
答案 1 :(得分:0)
您可以尝试重新实现主窗口showEvent
并忽略该事件,以防其他窗口可见。
void main_window::showEvent( QShowEvent* e )
{
if( /*one or more of its children are visible */ )
{
// nothing to do
}
else
{
QMainWindow::showEvent( e );
}
}