Normalerweise sind die Standard-QScrollBars von PyQt zu klein für hohe dpi-Anzeigen. Deshalb kann es notwendig sein, sie anzupassen. Und wenn Sie es trotzdem tun, warum nicht von den ästhetischen Verbesserungen profitieren, die Sie machen können?Anpassen der QScrollbar in PyQt
Dies ist, wie man das 'Look and Feel' Ihrer QScrollBar zwicken:
########################################
# My custom QScrollArea #
# widget #
########################################
class MyScrollArea(QScrollArea):
def __init__(self, parent):
super(MyScrollArea, self).__init__(parent)
...
self.setStyleSheet("""QScrollBar:vertical {
width: 45px;
margin: 45px 0 45px 0;
background: #32CC99;
}
QScrollBar::handle:vertical {
border: 10px solid grey;
background: white;
min-height: 10px;
}
QScrollBar::add-line:vertical {
border: 2px solid grey;
background: none;
height: 45px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical {
border: 2px solid grey;
background: none;
height: 45px;
subcontrol-position: top;
subcontrol-origin: margin;
}
QScrollBar::up-arrow:vertical {
border: 5px solid grey;
height: 40px;
width: 40px
}
QScrollBar::down-arrow:vertical {
border: 5px solid grey;
height: 40px;
width: 40px
}""")
...
### End init ###
### End Class ###
ich die folgende Dokumentation gefunden, wie die Stylesheet-Setup:
http://doc.qt.io/qt-4.8/stylesheet-examples.html#customizing-qscrollbar d
DAS PROBLEM:
Nach der Anpassung der QS CrollBars, sie funktionieren perfekt. Der Benutzer erhält jedoch kein visuelles Feedback, wenn er entweder auf den Griff oder auf die Pfeile klickt. Wenn Sie zum Beispiel auf den Pfeil klicken, wird nicht die visuelle Rückmeldung angezeigt, dass der Pfeil gedrückt wurde. Hier
ist ein Beispiel dafür, wie es sein sollte:
Ich bezweifle sehr, wenn Sie es mit Style Sheets erreichen können. StyleSheets können den Status des Bildlaufleisten-Griffs nicht ändern, wenn Sie auf den Pfeil klicken. Dazu müssen Sie möglicherweise die QScrollBar ableiten und selbst malen. – Marcus