QT弹出模态对话框做法:
1、新建UI文件时,一定要选择基类是QDialog的,我的选择是:Dialog without Buttons(),如下图:
2、然后在使用的时候:
MyDialog dlg(this);
dlg.exec();
如果不加this,则会在任务管理器里面产生一个新的EXE。
3、如果对话框的标题是自定义,不想使用系统的标题,这时候需要在代码中加入:
setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint );
setAttribute(Qt::WA_TranslucentBackground);
设置窗口标志时一定要加:Qt::Dialog,否则对话框弹出后不是以模态对话框的形式弹出的,会变成非模态对话框。
附:模态对话框自定义标题,且带透明阴影边框:
主要思想:
1、对话框上放一个Widget控件,这个Widget用来存放背景图片;
2、把对话框设置成无标题、无最小化按钮样式,并将背景完全透明化;
在对话框类,初始化加入:
setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint );
setAttribute(Qt::WA_TranslucentBackground);
在UI文件中设置Widget背景图,这个图是一个带阴影边框的图片:
#widget{border-image:url(:/images/bk.png)}
http://blog.csdn.net/itjobtxq/article/details/8797360