一 關于模态設定
QProgressDialog可以設定模态(需要在new的時候傳入parent),QProgressBar設定不好;
隻有dialog可以設定模态,widget不能設定模态(QProgressBar繼承自widget)
二 關于位置設定
子視窗要相對于父視窗設定合适的位置,父視窗在螢幕上移動,子視窗對應跟着改變大小與位置:
1 先設定子視窗的width與height,可以按父視窗的比例來;
2 然後以父視窗的左上角為原點計算子視窗的位置QPoint;
3 将2中的位置使用父視窗的mapToGlobal換算到螢幕的位置;
4 将3中得到的位置設定給子視窗;
如果子視窗設定成無邊框的,則子視窗位置設定自動轉換成相對于父視窗的位置,此時不再需要轉換螢幕坐标設定;
三 關于無邊框,無取消按鈕
setCancelButton(0);//隐藏取消按鈕
setWindowFlags(Qt::FramelessWindowHint);//無邊框
setStyleSheet("QWidget{background-color: rgb(255,255,255);}");//背景闆是白色
四 關于進度條樣式
取消顯示百分比,QProgressBar的setTextVisiable可以設定;
但是QProgressDialog沒有setTextVisiable怎麼辦?
這時new一個QProgressBar(該QProgressDialog可構造設定為其parent,友善管理),
然後QProgressDialog調用setBar即可;
progressBar再設定setTextVisiable(false)即可。
進度條還可以設定QSS樣式;
五 進度條大小控制
有setFixedSize()與setMinminSize();
先設定最小大小,然後設定固定大小,則最小限制被抵消;反之則可行;