如何将选择器的颜色(选择一个元素)从标准更改为我自己QListWidget
,我尝试使用
self.listWidget.setStyleSheet("selection-background-color: black")
在MainWindow
,但它只是没有改变。
我究竟做错了什么?
完整代码如下:
import sys
import httpx
from PySide6 import QtGui, QtWidgets, QtCore
from PySide6.QtGui import QPixmap, QScreen
from PySide6.QtWidgets import QMessageBox
from functions import * # мои личные функции
listdata = getdata() #моя функция
class CustomQWidget(QtWidgets.QWidget):
def __init__(self, parent=None):
super(CustomQWidget, self).__init__(parent)
self.titleLabel = QtWidgets.QLabel()
self.titleLabel.setStyleSheet('''color: White; background-color: #1C1C1C; font-size:24px; border-radius: 15px;
min-height: 50px;
max-height: 50px;
min-width: 50px;
max-width: 500px;
''')
self.descriptionLabel = QtWidgets.QLabel()
self.descriptionLabel.setWordWrap(True)
self.descriptionLabel.setStyleSheet('color: White; background-color: #1C1C1C; max-height: 150px; border-radius: 15px;')
self.vBoxLayout = QtWidgets.QVBoxLayout()
self.vBoxLayout.addWidget(self.titleLabel, 0)
self.vBoxLayout.addWidget(self.descriptionLabel, 1)
self.vBoxLayout.setSpacing(0)
self.iconQLabel = QtWidgets.QLabel()
self.iconQLabel.setMaximumSize(160, 210)
self.hBoxLayout = QtWidgets.QHBoxLayout(self)
self.hBoxLayout.addWidget(self.iconQLabel, 0)
self.hBoxLayout.addLayout(self.vBoxLayout, 1)
def setTitle(self, text):
self.titleLabel.setText(text)
def setDescription(self, text):
self.descriptionLabel.setText(text)
def setIcon(self, imagePath):
self.iconQLabel.setPixmap(QtGui.QPixmap(imagePath).scaled(
160, 210))
class MainWindow(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.listWidget = QtWidgets.QListWidget(self)
self.listWidget.setStyleSheet("selection-background-color: black")
self.setCentralWidget(self.listWidget)
self.pixmap = QPixmap()
i = 0
for list in listdata:
customQWidget = CustomQWidget()
customQWidget.setTitle(list["tittle"])
customQWidget.setDescription(list["description"])
self.pixmap.loadFromData(httpx.get(list["url"].content))
customQWidget.setIcon(self.pixmap)
item = QtWidgets.QListWidgetItem(self.listWidget)
item.setSizeHint(customQWidget.sizeHint())
self.listWidget.addItem(item)
item.setData(1, i)
self.listWidget.setItemWidget(item, customQWidget)
i = i + 1
self.listWidget.itemClicked.connect(self.Clicked)
def Clicked(self, item):
QMessageBox.information(self, "ListWidget", "You clicked: " + str(item.data(1)))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.setStyleSheet("background-color: #212121")
w.resize(700, 500)
w.show()
sys.exit(app.exec_())
请始终发布一个最低限度可复制的示例。
试试这样: