python - 如何将样式设置为 QListWidget 中的 ScrollBar?
问题描述
我在样式化 a 时遇到了一些问题QListWidget
。我一直在寻找如何将样式设置为 a ScrollBar
within a QListWidget
,但我找不到答案。
解决方案
试试看:
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class myListWidget(QListWidget):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.setStyleSheet("""
QScrollBar:vertical {
border: none;
background:white;
width:3px;
margin: 0px 0px 0px 0px;
}
QScrollBar::handle:vertical {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop: 0 rgb(32, 47, 130), stop: 0.5 rgb(32, 47, 130), stop:1 rgb(32, 47, 130));
min-height: 0px;
}
QScrollBar::add-line:vertical {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop: 0 rgb(32, 47, 130), stop: 0.5 rgb(32, 47, 130), stop:1 rgb(32, 47, 130));
height: 0px;
subcontrol-position: bottom;
subcontrol-origin: margin;
}
QScrollBar::sub-line:vertical {
background: qlineargradient(x1:0, y1:0, x2:1, y2:0,
stop: 0 rgb(32, 47, 130), stop: 0.5 rgb(32, 47, 130), stop:1 rgb(32, 47, 130));
height: 0 px;
subcontrol-position: top;
subcontrol-origin: margin;
}
""")
def Clicked(self,item):
QMessageBox.information(self, "ListWidget", "You clicked: "+item.text())
def main():
app = QApplication(sys.argv)
listWidget = myListWidget()
listWidget.resize(300, 120)
labels = ("Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7",
"Item 8", "Item 9", "Item 10", "Item 11", "Item 12", )
listWidget.addItems(labels)
listWidget.setWindowTitle('PyQT QListwidget Demo')
listWidget.itemClicked.connect(listWidget.Clicked)
listWidget.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
推荐阅读
- linq - 实体框架核心组按日期
- python - 将每个数据帧值复制 n 次
- dictionary - 如何将 JSON 输出保存到字典中?
- python-3.x - Python:python ast 中的 ast.FunctionType 是什么?
- python - 根据现有列中的值创建新列并合并行
- git - Git - 如果新 URL 的 git 历史记录完全不同,如何删除子模块并以相同的名称和路径再次创建它?
- python - 函数的 Sphinx 自动摘要模板在哪里?
- python - 时间序列单变量数据集的异常预测算法
- python - Python“无法分配给函数调用”
- dataframe - 无法在 Pypsark 中为 DataFrame 起别名