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

Qt QFrame边框未显示问题求助及相关代码

QFrame边框不显示的解决办法

问题出在你混用了QFrame原生边框设置和样式表:当你用setStyleSheet只设置border-color:white时,样式表会覆盖QFrame默认的边框渲染逻辑,但单独的颜色定义不足以触发边框绘制,必须完整指定边框的宽度、样式和颜色。

下面提供两种可行的解决方式:

方式一:使用原生API设置边框及颜色

保留setFrameShape等原生设置,通过调色板替代样式表来设置边框颜色,避免样式表覆盖原生渲染:

self.frame = QtWidgets.QFrame(self)
self.frame.setFrameShape(QtWidgets.QFrame.Box)
self.frame.setGeometry(QtCore.QRect(20, 710, 381, 121))              
self.frame.setLineWidth(2)
self.frame.setMidLineWidth(0)
# 用调色板设置边框颜色
palette = self.frame.palette()
palette.setColor(QtGui.QPalette.WindowText, QtCore.Qt.white)
self.frame.setPalette(palette)
self.frame.setObjectName("frame")

方式二:完全用样式表定义边框

直接通过样式表完整定义边框属性,此时可以去掉原生的setFrameShape、setLineWidth等设置(样式表优先级更高,这些设置会被覆盖):

self.frame = QtWidgets.QFrame(self)
self.frame.setGeometry(QtCore.QRect(20, 710, 381, 121))              
self.frame.setStyleSheet("""
    QFrame#frame {
        border: 2px solid white;
    }
""")
self.frame.setObjectName("frame")

注意:不要同时混用原生边框设置和不完整的样式表定义,这会导致边框渲染异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:21:25