2017-03-06 30 views
0

我需要一些樣式作爲滾動的圖像:QScrollBar樣式縮放柄

enter image description here

多的痛苦和實驗後,我發現如何使梯度,並隱藏箭頭。

m_scrollBarStyleSheet = "QScrollBar:horizontal { \n " 
       " background-color: qlineargradient(x1: 1, y1: 0.5, x2: 0, y2: 0.5, stop: 0 magenta, stop: 1 #FFFFFF); \n " 
       " border: 1px solid black; \n" 
       " height: 35px; \n " 
       " width: 261px; \n" 
       " margin: 0 0 0 0; \n " 
       "} \n " 
       "QScrollBar::handle:horizontal { \n" 
       " background-color: silver; \n" 
       " border: 1px solid grey; \n" 
       " height: 55px; \n" // seems to do nothing 
       " width: 2px; \n" // seems to do nothing 
       "} \n" 
       "QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal { \n" // hides arows 
       " border: none; background: none; \n" 
       "} \n" 
       "QScrollBar::add-page:horizontal, QScrollBar::sub-page:horizontal { \n" // makes background show through 
       " border: none; \n" 
       "} \n"; 

QString s = m_scrollBarStyleSheet; 
s.replace("magenta", "yellow"); // whatever color I need 
horizontalScrollBar->setStyleSheet(s); 
... 

結果:足夠接近:

enter image description here

但沒有我這樣做似乎讓我來調整實際的滾動件(處理?) - 我不能讓它變細,我還沒有看到任何可以讓它的高度超過背後矩形高度的東西。

如何調整小滑動矩形以儘可能適合所需的圖像?

注意我必須使用Qt 4.8

回答

1

我發現QScrollBar手柄寬度不能改變,它的計算方法是酒吧的百分比。

所以,我用一個滑塊替換了滾動條,這個滑塊也可以使手柄高度超過條的總寬度:通過設置負邊距。

(我用這個example更新我的問題的風格)。