Как убрать фон QScrollBar
Столкнулся с затруднением: при попытке сделать фон QScrollBar прозрачным он всё равно остаётся видимым. Я так же пробовал этот способ, однако, безрезультатно. Подскажите пожалуйста что я делаю не так?
SSExample.py
import sys
from PyQt5.QtWidgets import *
class MainWindow(QMainWindow):
"""Doc."""
def __init__(self, parent=None):
"""Doc."""
super().__init__()
self.initUI()
def initUI(self):
centralwidget = QWidget(self)
self.setCentralWidget(centralwidget)
main_box = QGridLayout(centralwidget)
self.city_scrollArea = QScrollArea(self)
self.city_widget = QWidget(self)
self.city_layout = QVBoxLayout(self.city_widget)
self.city_scrollArea.setWidget(self.city_widget)
self.city_scrollArea.setWidgetResizable(True)
main_box.addWidget(self.city_scrollArea)
for i in range(20):
pb = QPushButton(f"push_button_{i}")
self.city_layout.addWidget(pb)
self.setStyleSheet("""
QMainWindow {
background: blue;
}
QScrollBar:vertical {
border: none;
background-color: transparent;
background: transparent;
width: 8px;
margin: 0px 0px 0px 0px;
}
QScrollBar::handle:vertical {
background: transparent;
background-repeat: no-repeat;
min-height: 0px;
border-image: url("resources/images/assets/div_animation_0.png") 0 0 0 0;
}
QScrollBar::add-line:vertical {
height: 0px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical {
height: 0 px;
subcontrol-position: top;
subcontrol-origin: margin;
}
#Scroll_Area {
background-color: transparent;
border: transparent;
}
""")
if __name__ == '__main__':
app = QApplication(sys.argv)
mw = MainWindow()
mw.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
import sys
from PyQt5.QtWidgets import *
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super().__init__()
self.initUI()
def initUI(self):
centralwidget = QWidget(self)
centralwidget.setObjectName('centralwidget') # +
self.setCentralWidget(centralwidget)
main_box = QGridLayout(centralwidget)
self.city_scrollArea = QScrollArea(self)
self.city_scrollArea.setObjectName('city_scrollArea')
self.city_widget = QWidget(self)
self.city_layout = QVBoxLayout(self.city_widget)
self.city_scrollArea.setWidget(self.city_widget)
self.city_scrollArea.setWidgetResizable(True)
main_box.addWidget(self.city_scrollArea)
for i in range(20):
pb = QPushButton(f"push_button_{i}")
self.city_layout.addWidget(pb)
self.setStyleSheet("""
#centralwidget {
background: #609772;
}
/* ===================== QScrollBar ======================= */
QScrollBar:vertical {
background: #609772;
width: 15px;
margin: 0px 3px 0px 3px;
border: 1px transparent #2A2929;
border-radius: 4px;
}
QScrollBar::handle:vertical {
background-color: #609772;
min-height: 5px;
border-radius: 4px;
border-image: url("ball.png") 0 0 0 0; /* <---- установите свое изображение */
}
QScrollBar::sub-line:vertical {
margin: 0px 0px 0px 0px;
height: 0px;
width: 10px;
subcontrol-position: top;
subcontrol-origin: margin;
}
QScrollBar::add-line:vertical {
margin: 0px 0px 0px 0px;
height: 0px;
width: 10px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::up-arrow:vertical, QScrollBar::down-arrow:vertical {
background: none;
}
QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {
background: none;
}
""")
if __name__ == '__main__':
app = QApplication(sys.argv)
mw = MainWindow()
mw.show()
sys.exit(app.exec_())
ball.png


