一 關於模態設置
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();
先設置最小大小,然后設置固定大小,則最小限制被抵消;反之則可行;