Как убрать задний план в QScrollBar?
Как в styleSheet убрать эту белую сетку в скроллбаре?

Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Пожалуйста, всегда предоставляйте минимальный пример !!!
Вот эта строка сделает то что вы хотите:
QScrollBar:vertical {
...
background: transparent; /* убрать эту белую сетку в скроллбаре
...
}
поэкспериментируйте с таблицей стилей QScrollBar
import sys
from PyQt5 import QtWidgets
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QAction, QLabel, QVBoxLayout, QScrollArea
from threading import Thread
class DragNDropWindow(QWidget): #, Thread): # ?
def __init__(self, parent=None):
super(DragNDropWindow, self).__init__(parent)
self.setStyleSheet("""
QWidget {
border: none;
}
/* QScrollArea ----------------------------------------------------- */
QScrollArea QWidget QWidget:disabled {
background-color: #232629;
}
/* QScrollBar ------------------------------------------------------ */
QScrollBar:vertical {
/* background-color: #foo; попробуйте раскомментировать, убрав строку ниже */
background: transparent; /* убрать эту белую сетку в скроллбаре */
width: 16px;
margin: 16px 2px 16px 2px;
border: 0px solid #31363B; /* попробуйте заменит на это: border: 1px solid #31363B; */
border-radius: 4px;
}
QScrollBar::handle:vertical {
background-color: #4D545B;
border: 1px solid #31363B;
min-height: 8px;
border-radius: 4px;
}
QScrollBar::handle:vertical:hover {
background-color: #179AE0;
border: 1px solid #179AE0;
border-radius: 4px;
min-height: 8px;
}
QScrollBar::sub-line:vertical {
margin: 3px 0px 3px 0px;
border-image: url(icons/up_arrow_disabled.png);
height: 10px;
width: 10px;
subcontrol-position: top;
subcontrol-origin: margin;
}
QScrollBar::add-line:vertical {
margin: 3px 0px 3px 0px;
border-image: url(icons/down_arrow_disabled.png);
height: 10px;
width: 10px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical:hover,
QScrollBar::sub-line:vertical:on {
border-image: url(icons/up_arrow.png);
height: 10px;
width: 10px;
subcontrol-position: top;
subcontrol-origin: margin;
}
QScrollBar::add-line:vertical:hover,
QScrollBar::add-line:vertical:on {
border-image: url(/icons/down_arrow.png);
height: 10px;
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;
}
""")
self.setWindowFlags(Qt.Window | Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
self.setAttribute(Qt.WA_TranslucentBackground, True)
self.background = QLabel(self)
bpixmap = QPixmap('lena-removebg-preview.png')
self.background.setPixmap(bpixmap)
self.background.show()
with open('test.txt') as mindList:
mindList = mindList.read()
minds = mindList.split(sep='@@\n@@')
vbox = QVBoxLayout()
vbox.addStretch(1)
vbox.setSpacing(15)
for i in minds:
label = QLabel(self)
label.setText(i)
label.setFixedWidth(420)
label.setStyleSheet('''
font: 10pt "Jack Brusher(RUS BY LYAJKA)";
background-color: #778899;
border-radius: 5px;
color: #FFFFE0;
padding: 15;
''')
label.setContextMenuPolicy(Qt.ActionsContextMenu)
action = QAction("Скрыть текст", self)
action.triggered.connect(label.hide)
label.addAction(action)
vbox.addWidget(label)
label.setWordWrap(True)
self.setContextMenuPolicy(Qt.ActionsContextMenu)
action2 = QAction("Показать текст", self)
action2.triggered.connect(label.show)
self.addAction(action2)
self.scrollarea = QScrollArea(self)
self.scrollarea.resize(self.background.width(), self.background.height())
self.scrollarea.setWidgetResizable(True)
area = QWidget()
area.setAttribute(Qt.WA_TranslucentBackground, True)
area.setLayout(vbox)
self.scrollarea.setWidget(area)
''' УБРАЛ
self.scrollarea.setStyleSheet("""
QScrollBar:vertical {
background: red;
width: 7px;
margin: 0px 0px 0px 0px;
}
""")
'''
self.resize(self.background.width(), self.background.height())
self._old_pos = None
def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
self._old_pos = event.pos()
def mouseReleaseEvent(self, event):
if event.button() == Qt.LeftButton:
self._old_pos = None
def mouseMoveEvent(self, event):
if not self._old_pos:
return
delta = event.pos() - self._old_pos
self.move(self.pos() + delta)
class MyWin(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('MyWin')
self.dd = DragNDropWindow(self)
self.dd.show()
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = MyWin()
w.show()
sys.exit(app.exec_())
