You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QListWidget复选框样式问题:自定义样式后复选框重复显示

解决QListWidget复选框重复显示及文本截断问题

问题分析

复选框重复显示、项文本被截断,是因为自定义QListView::indicator样式时未完全覆盖默认复选框的绘制逻辑,同时列表项内边距未给复选框预留足够空间,导致文本被挤压。

修复方案

1. 完全覆盖默认复选框样式

给QListView::indicator添加明确的尺寸、位置属性,彻底替换默认复选框,避免重复显示。

2. 调整列表项内边距

修改QListView::item的内边距,给左侧复选框留出足够宽度,防止文本被截断。

修改后的代码

样式表代码

OPTION_CLIENT_MAIN = (
    "QListWidget"
    "{"
    f"border : 3px solid {Palette.PRIMARY_COLOR.value};"
    f"color : {Palette.SECONDARY_COLOR.value};"
    "border-radius : 15%;"
    "outline : 0px;"
    "padding : 5px;"
    "}"
    "QListView::item"
    "{"
    "padding : 15px 15px 15px 40px;"  # 左侧预留40px空间给复选框
    "outline : 0px;"
    "}"
    "QListView::item:selected"
    "{"
    f"border : 3px dashed {Palette.SECONDARY_COLOR.value};"
    f"background : {Palette.PRIMARY_COLOR.value};"
    "border-radius : 15%;"
    f"color : {Palette.COMMON_COLOR_W.value};"
    "}"
    "QListView::item:hover"
    "{"
    f"background : {Palette.PRIMARY_COLOR.value};"
    f"color : {Palette.COMMON_COLOR_W.value};"
    "}"
    "QListView::indicator"
    "{"
    "width: 20px;"  # 设置复选框宽度
    "height: 20px;"  # 设置复选框高度
    "subcontrol-origin: padding;"
    "subcontrol-position: left center;"  # 复选框靠左垂直居中
    "}"
    "QListView::indicator:checked"
    "{"
    f"background-color : {Palette.COMMON_COLOR_G.value};"
    "border: 2px solid {Palette.SECONDARY_COLOR.value};"
    "border-radius: 3px;"
    "}"
    "QListView::indicator:unchecked"
    "{"
    f"background-color : {Palette.COMMON_COLOR_R.value};"
    "border: 2px solid {Palette.SECONDARY_COLOR.value};"
    "border-radius: 3px;"
    "}"
)

补充检查代码

若仍存在重复显示,确认列表项仅启用内置复选框,避免额外添加自定义控件:

for i in range(self.clientListWidget.count()):
    item = self.clientListWidget.item(i)
    # 确保仅启用内置复选框标记
    item.setFlags(item.flags() | Qt.ItemIsUserCheckable)
    if con.isActiveClient(item.text()):
        item.setCheckState(Qt.Checked)
    else:
        item.setCheckState(Qt.Unchecked)

内容的提问来源于stack exchange,提问作者A-Wilson-JP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 01:20:38