标题:qt5有没有窗体显示前事件?
作者:hhq2000
日期:2016-09-13 16:28
内容:
与qt4不同,qt5 showEvent事件在窗体显示后才触发,qt5有没有窗体显示前事件?可以控制窗体是否显示。
#1 [dbzhang800 09-13 17:16]
你提到的Qt4和Qt5的这个差异是如何得出的,能给出一个具体可重现这个差异的例子吗?
#2 [hhq2000 09-18 09:22]
mainwindow实现virtual void showEvent,方法。在这个方法中显示一个dialog。qt4在dialog关闭后才显示父窗体,qt5是mainwindow和dialog同时显示的。不知道是否可以说明问题。
qt5.4测试
#3 [dbzhang800 09-18 10:53]
你用的什么平台,Windows7下,Qt4.8.5、Qt5.5.1、Qt5.6.1、Qt5.7.0 下,如下代码没发现你描述的问题
#include
#include
#include
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();
}
#4 [hhq2000 09-18 15:15]
再测试了一下,的确不会了。晕倒。。。
是不是上次杀毒软件对他有干扰
#5 [ubuntu爱好者 12-16 12:33]
估计是先调用了你的父类showEvent吧