查看完整版本: [-- qt5有没有窗体显示前事件? --]

QTCN开发网 -> Qt基础编程 -> qt5有没有窗体显示前事件? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

hhq2000 2016-09-13 16:28

qt5有没有窗体显示前事件?

与qt4不同,qt5 showEvent事件在窗体显示后才触发,qt5有没有窗体显示前事件?可以控制窗体是否显示。

dbzhang800 2016-09-13 17:16
你提到的Qt4和Qt5的这个差异是如何得出的,能给出一个具体可重现这个差异的例子吗?

hhq2000 2016-09-18 09:22
mainwindow实现virtual void showEvent,方法。在这个方法中显示一个dialog。qt4在dialog关闭后才显示父窗体,qt5是mainwindow和dialog同时显示的。不知道是否可以说明问题。
qt5.4测试

dbzhang800 2016-09-18 10:53
你用的什么平台,Windows7下,Qt4.8.5、Qt5.5.1、Qt5.6.1、Qt5.7.0 下,如下代码没发现你描述的问题

  1. #include <QApplication>

    #include <QDialog>
    #include <QMainWindow>

    class MainWindow : public QMainWindow
    {
    public:
        MainWindow()
        {
            resize(800, 600);
            setWindowTitle("MainWindow for show event test!");
        }

    protected:
        void showEvent(QShowEvent *evt)
        {
            QDialog dlg;
            dlg.resize(400, 300);
            dlg.exec();
        }
    };

    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);

        MainWindow mw;
        mw.show();

        return a.exec();
    }



hhq2000 2016-09-18 15:15
再测试了一下,的确不会了。晕倒。。。
是不是上次杀毒软件对他有干扰

ubuntu爱好者 2016-12-16 12:33
估计是先调用了你的父类showEvent吧


查看完整版本: [-- qt5有没有窗体显示前事件? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled