• 11420阅读
  • 4回复

[提问]窗口总在最前端显示后挡住了一切QMessageBox [复制链接]

上一主题 下一主题
离线yzpdsg
 

只看楼主 倒序阅读 楼主  发表于: 2011-07-21
按照论坛上提供的方法,将窗口设置为前端显示了:

    setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);

同时我重新实现了closeEvent()
void MainWindow::closeEvent(QCloseEvent *event)
{
    QMessageBox message(QMessageBox::Question,tr("警告"), tr("要退出吗?"), QMessageBox::Yes | QMessageBox::No,NULL);
    if(message.exec() == QMessageBox::Yes)
        event->accept();
    else
        event->ignore();
}
由于主窗口总在最前,把close时弹出的确认窗口都挡住了,同时主窗口也僵死无反应了。
我想要的效果是主窗口在所有窗口的最前面,同时不挡住程序本身产生的所有提示框,该怎么办呢?

离线yzpdsg

只看该作者 1楼 发表于: 2011-07-23
回 楼主(yzpdsg) 的帖子
仍未找到解决方法。。。
离线iynaur

只看该作者 2楼 发表于: 2012-09-22
这个办法太蠢了。解决办法在楼下。
离线iynaur

只看该作者 3楼 发表于: 2012-09-22
更好的办法
QMessageBox message(QMessageBox::Question,tr("警告"), tr("要退出吗?"), QMessageBox::Yes | QMessageBox::No,NULL);
            message.setWindowFlags(Qt::WindowStaysOnTopHint);
            if   (message.exec()........

离线shiziyang

只看该作者 4楼 发表于: 2012-09-25
把message的最后一个参数从NULL改成this
快速回复
限100 字节
 
上一个 下一个