2017-12-07 2 views
1

Ich brauche schlecht Größe des Griffs für meinen Schieberegler zu erhöhen, aber keine CSS-Optionen können dies tun (styleSheet()). Das Standardbeispiel von Qt docs hat mir auch nicht geholfen.QSlider erhöhen Griffgröße

Ich habe ein Schieber wie folgt aus: I have slider like this

Ich wünsche der Höhe seines Griffs zu erhöhen, wie weiter unten auf Erklärung Bild gezeigt, aber ich kann nicht erraten, wie es zu tun. Wahrscheinlich ist der einzige Weg, QAbstractSlider abzuleiten? Hier

explanation image

ist das Stylesheet von meinem Code:

   "QSlider::groove:horizontal {" 
       "border: 1px solid #999999;" 
       "height: 32px;" /* the groove expands to the size of the slider by default. by giving it a height, it has a fixed size */ 
       "background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #B1B1B1, stop:1 #c4c4c4);" 
       "margin: 2px 0; }" 
      "QSlider::handle:horizontal {" 
       "background: qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 #b4b4b4, stop:1 #8f8f8f);" 
       "border: 1px solid #5c5c5c;" 
       "width: 40px;" 
       "margin: -20px 0;" /* handle is placed by default on the contents rect of the groove. Expand outside the groove */ 
       "border-radius: 3px;}" 
      ); 

Antwort

1

verwenden Sheet:

.QSlider { 
    min-height: 68px; 
    max-height: 68px; 
    background: #5F4141; 
} 

.QSlider::groove:horizontal { 
    border: 1px solid #262626; 
    height: 5px; 
    background: #393939; 
    margin: 0 12px; 
} 

.QSlider::handle:horizontal { 
    background: #22B14C; 
    border: 5px solid #B5E61D; 
    width: 23px; 
    height: 100px; 
    margin: -24px -12px; 
} 

Es wird produzieren die folgende:

image

Bitte beachten Sie, dass die Höhe des Schiebers konstant ist, indem Sie sowohl min-height als auch max-height auf den gleichen Wert setzen.

+1

Sie sind ein Magier, thx! Ich habe das Gefühl, dass ich mein Stylesheet-Wissen in QT verbessern muss, viel! Meine Deadline wird glücklich beendet! – Preonix

+0

@Preonix :) Gern geschehen! – scopchanov

1

ich Ihren genauen Code in ein Formular in Qt Designer kopiert. Der Schieberegler sieht groß genug aus.

Wenn Sie jedoch ein Layout hinzufügen, ist die Größe des gesamten Schiebereglers nicht groß genug, um das vollständige Handle anzuzeigen. Ich habe einfach:

QSlider { 
    height: 80px; 
} 

Und erhalten Sie dieses Ergebnis:

Form Slider Screenshot

+0

ye, aber ich brauche nicht die Fortschrittshöhe zu erhöhen, das ist der Punkt – Preonix

Verwandte Themen