效果预览
直接看图,效果展现为在Checkbox后跟随图标实现友好的界面交互且可勾选

核心代码说明
控件初始化
类的构造函数__init__在窗口中创建了一个垂直布局QVBoxLayout,并在布局内添加了一个QListView用于展示可勾选的列表项(通过CheckableItemModel和CheckBoxDelegate来实现相关的数据模型与委托逻辑)
def __init__(self):
super().__init__()
self.setWindowTitle("QCheckBoxIcon Demo")
__desktop = QDesktopWidget()
__screen_width = __desktop.screenGeometry().width()
__screen_height = __desktop.screenGeometry().height()
self.setGeometry(int(__screen_width * 0.25),
int(__screen_height * 0.25),
__screen_width // 2,
__screen_height // 2)
self._layout = QVBoxLayout()
self._list_view = QListView()
self._model = CheckableItemModel()
delegate = CheckBoxDelegate()
self._list_view.setModel(self._model)
self._list_view.setItemDelegate(delegate)
self._layout.addWidget(self._list_view, alignment=Qt.AlignTop) # 可不对齐
self.setLayout(self._layout)
self._model = CheckableItemModel()创建一个CheckableItemModel对象,这个类是自定义的数据模型,用于管理可勾选列表项的数据,并按照PyQt5的数据模型机制与视图QListView进行交互,提供数据展示、更新等功能delegate = CheckBoxDelegate()创建一个CheckBoxDelegate
5306




被折叠的 条评论
为什么被折叠?



