天天看點

QT QProgressBar QProgressDialog 模态,位置設定,無邊框,進度條樣式

一  關于模态設定

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();

先設定最小大小,然後設定固定大小,則最小限制被抵消;反之則可行;

繼續閱讀