2017-03-06 19 views
0
私は画像のように、いくつかのスクロールバーのスタイルをする必要が

扱います。QScrollBarスタイルシートのサイズ変更は

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を使用して私の質問からスタイルを更新しました)。

関連する問題