首页 > 技术知识 > 正文

当创建QDialog后使用setWindowFlags(Qt::FramelessWindowHint);去掉标题栏时此对话框不再阻塞父窗口,如果需要实现阻塞效果可再次指定Qt::Dialog,即使用:

setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint); //这样就会阻塞父窗口了!

但是,这样会影响对话框的半透明(或透明)显示。使用Qt::Dialog之前半透明显示正常。

如果按此创建Qdialog,在close此Dialog的时候,就有可能将第一层显示的dialog也全部关闭,从而导致再次创建出现问题,影响程序运行并报错。

猜你喜欢