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