最近需要在原有界面上做几个弹窗显示。
继承了QWidget的弹窗,和继承了QDialog的弹窗,显示后,去掉边框都会冻结,界面无法操作。
setWindowFlags(Qt::FramelessWindowHint | windowFlags() | Qt::WindowStaysOnTopHint);
也有网友说是需要或上Qt::Dialog或者Qt::Widget的,统统都没有用。
后来继承了QFrame,然后就可以了。最终原因,也没整明白。QFrame也是继承的QWidget呀。
另外还有一个奇怪的问题:软件有个开机界面时QDialog的,在初始化界面内容后,发射一个关闭信号,通知开机界面accept,然后显示主界面。但是,这种发射信号使QDialog关闭,会导致弹窗冻结(当起了其他QDialog之后,弹窗解冻)。可是,如果是初始化界面之后,直接调用QDialog::accept(),启动主界面之后,弹窗不会被冻结。这个原因也没有找到。