Qt &QSS

Today task:
解决了qt中的一些控件无法使用qss的问题(如QProgressDialog 调节chunk的颜色,QMessageBox按钮的颜色问题)
1,对于QMessageBox,可以单独设置Button的qss
如:style += QPushButton(color: rgb(...), backround-color: rgb(...); height: 12px };
可是,有些时候,字体颜色无法使用qss所规定的
那么可以使用一下方法来使其生效。

 1 QObjectList objectChildList = msgBox->children();
 2 for(int i=0; i<objectChildList.size(); i++)
 3 {
 4 
 5         QObject *pObj= objChildList.at(i);
 6         if (pObj->inherits("QLabel"))
 7         {
 8             QWidget *pWidget = (QWidget*)pObj;
 9             pWidget->setStyleSheet("color: rgb(255,255,255)");
10         }
11 }

 


然后设置其sytle。

对于QProgressDialog

 1     style +="QProgressDialog{ background-color: rgb(108, 110, 108)}";
 2     style +="QPushButton{color: rgb(255,255,255); background-color: rgb(66, 66, 66);height: 14px; width: 100px}";
 3     style +="QPushButton::hover{color: rgb(255,255,255); background-color: rgb(74, 74, 74);height: 14px; width: 100px}";
 4 
 5     QObjectList objChildList = qPDlg->children();
 6     for (int i = 0; i < objChildList.size(); i++)
 7     {
 8         QObject *pObj= objChildList.at(i);
 9         if (pObj->inherits("QProgressBar"))
10         {
11             QWidget *pWidget = (QWidget*)pObj;
12             QProgressBar *pBWidget = (QProgressBar *)pWidget;
13             QString sheet;
14             sheet += "QProgressBar{color: rgb(255,255,255); background-color:rgb(48, 48, 48);border-radius: 2px;}";
15             sheet += "QProgressBar::chunk{background-color:rgb(176,138,32);}";
16             pWidget->setStyleSheet(sheet);
17             pBWidget->setAlignment(Qt::AlignCenter);
18         }
19         else if (pObj->inherits("QLabel"))
20         {
21             QWidget *pWidget = (QWidget*)pObj;
22             pWidget->setStyleSheet("color: rgb(255,255,255)");
23         }
24     }

 3, QTreeView stylesheet

 1         QString style;
 2         style +="QTreeView::Item{background-color:rgb(66, 66, 66);}";
 3          style +="QTreeView::Item::selected{background-color:rgb(0,54,162);}";
 4         style +="QTreeView::Item{color: rgb(255, 255, 255);}";
 5 
 6         style +="QTreeView::branch:has-siblings:!adjoins-item {background:rgb(0,54,162);}";
 7         style +="QTreeView::branch:has-siblings:adjoins-item {background:rgb(0,54,162);}";
 8         style +="QTreeView::branch:!has-children:!has-siblings:adjoins-item {background:rgb(66, 66, 66);}";
 9         style +="QTreeView::branch:has-children:!has-siblings:closed {background:rgb(108, 110, 108);}";
10         style +="QTreeView::branch:has-children:!has-siblings:closed:selected {background:rgb(0,54,162);}";
11 
12         style +="QTreeView::branch:open:has-children:!has-siblings:selected {background:rgb(0,54,162);}";
13         style +="QTreeView::branch:open:has-children:has-siblings:selected {background:rgb(0,54,162);}";//>>>>>>>>>>>>
14 
15 //        style +="QTreeView::branch:close:has-children:!has-siblings {background:rgb(108, 110, 108);}";
16      //   style +="QTreeView::branch:close:has-children:!has-siblings:selected {background:rgb(108, 110, 108);}";
17         style +="QTreeView::branch:close:has-children:has-siblings {background:rgb(66, 66, 66);}";
18        // style +="QTreeView::branch:close:has-children:has-siblings:selected {background:rgb(0,54,162);}";
19 
20         style +="QTreeView::branch:has-siblings:!adjoins-item {border-image: url(:/Icons/stylesheet-vline.png) 0;}";
21 
22         style +="QTreeView::branch:has-siblings:adjoins-item {border-image: url(:/Icons/stylesheet-branch-more.png) 0;}";
23 
24         style +="QTreeView::branch:!has-children:!has-siblings:adjoins-item {border-image: url(:/Icons/stylesheet-branch-end.png) 0 }";
25 
26         style +="QTreeView::branch:has-children:!has-siblings:closed,QTreeView::branch:closed:has-children:has-siblings {border-image: none;image: url(:/Icons/stylesheet-branch-closed.png);}";
27 
28         style +="QTreeView::branch:open:has-children:!has-siblings,QTreeView::branch:open:has-children:has-siblings  {border-image: none;image: url(:/Icons/stylesheet-branch-open.png);}";
29 
30         style += "QTreeView{background: rgb(66, 66, 66);}";
31         style += "QTreeView::HeaderView{background: rgb(66, 66, 66);}";
32 
33         style += "QHeaderView::section {background-color:rgb(66, 66, 66);color: white; border: 0 px; font-weight: bold;}";
34         style += "QWidget{background: rgb(66, 66, 66); color: white;}";
35         setStyleSheet(style);

 

posted @ 2015-05-22 20:21  不要等待  阅读(899)  评论(0)    收藏  举报