0
如何将自定义项目添加到具有我选择背景颜色的QListWidget中,并为每个项目添加底部边框,如下图中的草稿示例。将定制项目添加到QListWidget
这是我写的代码:
from PyQt5 import QtWidgets, QtGui
import sys
class CustomListHead(QtWidgets.QWidget):
def __init__(self):
super(CustomListHead, self).__init__()
self.project_title = QtWidgets.QLabel("Today")
self.set_ui()
def set_ui(self):
grid_box = QtWidgets.QGridLayout()
grid_box.addWidget(self.project_title, 0, 0)
self.setLayout(grid_box)
self.show()
class CustomListItem(QtWidgets.QWidget):
def __init__(self):
super(CustomListItem, self).__init__()
self.project_title = QtWidgets.QLabel("Learn Python")
self.task_title = QtWidgets.QLabel("Learn more about forms, models and include")
self.set_ui()
def set_ui(self):
grid_box = QtWidgets.QGridLayout()
grid_box.addWidget(self.project_title, 0, 0)
grid_box.addWidget(self.task_title, 1, 0)
self.setLayout(grid_box)
self.show()
class MainWindowUI(QtWidgets.QMainWindow):
def __init__(self):
super(MainWindowUI, self).__init__()
self.list_widget = QtWidgets.QListWidget()
self.set_ui()
def set_ui(self):
custom_head_item = CustomListHead()
item = QtWidgets.QListWidgetItem(self.list_widget)
item.setSizeHint(custom_head_item.sizeHint())
self.list_widget.setItemWidget(item, custom_head_item)
self.list_widget.addItem(item)
custom_item = CustomListItem()
item = QtWidgets.QListWidgetItem(self.list_widget)
item.setSizeHint(custom_item.sizeHint())
self.list_widget.addItem(item)
self.list_widget.setItemWidget(item, custom_item)
vertical_layout = QtWidgets.QVBoxLayout()
vertical_layout.addWidget(self.list_widget)
widget = QtWidgets.QWidget()
widget.setLayout(vertical_layout)
self.setCentralWidget(widget)
self.show()
app = QtWidgets.QApplication(sys.argv)
ui = MainWindowUI()
sys.exit(app.exec_())
当我设置样式表来QListWidget比设置背景颜色为项目,这最后一个这么想的工作。 –
在样式表本身设置背景色。 listWidget-> setStyleSheet( “QListWidget ::项目{” “边框风格:固体;” “的border-width:1px的;” “边框颜色:黑色;” “背景色:绿色;” “}” – Naidu
它不起作用,这就是我所做的:self.list_widget.setStyleSheet(“”“ QListWidget :: item {border} style:solid; border-width:1px; border-color:黑; 背景色:绿色; } “”“) 比我添加颜色背景像这样的第一项:item.setBackground(QtGui.QColor(255,255,100)) 结果,我得到的是:所有绿色的项目(在样式表中设置)。 –