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

PyQt5 QProgressBar设置border-radius后圆角失效、文字错位问题咨询

问题说明

这个渲染异常是QSS(Qt样式表)的已知适配问题,不是PyQt5或Designer的故障。
你只给QProgressBar外层控件设置了边框和圆角,但没有定义内部进度填充块(::chunk子控件)的样式,也没有指定文本的对齐规则,就会出现两个典型异常:

  • 内部填充块默认是直角矩形,不会自动继承外层的圆角属性,超出圆角边界的部分直接溢出显示
  • 进度文本默认的定位逻辑不会自动适配圆角后的控件内边距,就会出现位置偏移

异常效果如下:
进度条渲染异常效果

只要按你描述的步骤拖拽控件加两行样式,确实可以100%复现这个问题。

修复方法

替换成完整的QProgressBar样式即可,代码如下:

QProgressBar {
    border: 2px solid black;
    border-radius: 20px;
    text-align: center; /* 修正文本位置,强制居中显示 */
}
QProgressBar::chunk {
    border-radius: 18px; /* 圆角比外层小2px,避免被边框裁切出毛边 */
    background: #0d6efd; /* 可自定义进度填充色 */
    margin: 2px; /* 可选,让填充块和外边框留空隙,视觉效果更自然 */
}
适配要点
  • ::chunk的圆角值必须比外层控件的圆角小1~2px,否则填充块边缘会被外层边框硬裁切,显示不规整
  • 必须显式声明text-align属性,否则文本不会自动适配圆角控件的内部边界,错位问题不会消失
  • 如果要做左右不对称的圆角进度条(比如进度走到最右端才显示右侧圆角),可以给::chunk单独设置单侧圆角属性适配

内容的提问来源于stack exchange,提问作者ChronoVortex

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 22:16:02