2017-03-06 1 views
0

Ich brauche ein paar Bildlaufleisten wie im Bild stylen:QScrollBar Sheet Resize Griff

enter image description here

Nach viel Schmerz und Experimentieren, fand ich, wie die Steigung zu machen, und die Pfeile verstecken.

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

Das Ergebnis: nahe genug:

enter image description here

Aber nichts, was ich tun scheint mir zu erlauben, die tatsächliche Rolle im Stück, um die Größe (der Griff?) - Ich kann es nicht dünner machen, und Ich habe nichts gesehen, was dazu führen könnte, dass seine Höhe die Höhe des dahinter liegenden Rechtecks ​​übersteigt.

Wie kann ich das kleine verschiebbare Rechteck so groß wie möglich an das gewünschte Bild anpassen?

Hinweis I Qt 4.8

Antwort

1

verwenden müssen, fand ich heraus, dass QScrollBar Griffbreite kann nicht geändert werden, es wird als Prozentsatz der Stange berechnet.

Also habe ich die Bildlaufleiste durch einen Schieberegler ersetzt, der auch eine Griffhöhe haben kann, die die Gesamtbreite des Balkens überschreitet: indem man einen negativen Rand einstellt.

(Ich habe diese example verwendet, um den Stil von meiner Frage zu aktualisieren).