对于已经存在的Qt项目,我希望通过qss为重点部件设置边界。但我面对的是一些意想不到的结果。当我更改QSpinBox (和QDoubleSpinBox)的边框时,会像我预期的那样改变边框,但是向上键和向下键也会改变,看起来很难看。

下面是我的风格定义(可用的完整示例这里):
QSpinBox:focus
{
border-width: 2px;
border-style: solid;
border-color: green;
}我的问题是:如何改变边框的外观,同时保持向上按钮和向下按钮的外观。解决方案,我正在寻找的不应该是跨平台或跨版本。
我的环境:
更新
下面是另一个风格的例子:
QSpinBox
{
border-width: 2px;
border-style: solid;
border-color : red;
}
QSpinBox:hover
{
border-width: 2px;
border-style: solid;
border-color: blue;
}该小部件如下所示:

发布于 2016-02-05 15:19:37
当您将样式表应用到QSpinBox时,这个小部件将完全使用QStyleSheetStyle绘制(这个类不是公共API的一部分)。
因此,您必须要么完全样式您的旋转框,包括向上/向下按钮,或根本不使用样式表。
向上/向下按钮不是分开的小部件,所以您不能对它们应用不同的样式。
因此,我建议对QSpinBox进行子类化,并重新实现paintEvent()方法。在您的paintEvent()方法中,您只需调用它的默认实现,然后在周围画一个矩形。
发布于 2016-02-03 22:12:47
尝试用另一种随机样式编辑你的qss文件,看看它是否一致。
QSpinBox
{
border-width: 2px;
border-style: solid;
border-color : red;
}
QSpinBox:hover
{
border-width: 2px;
border-style: solid;
border-color: blue;
}编辑:
我看你的箭还没有射出,所以我建议你做两件事:
https://stackoverflow.com/questions/35162425
复制相似问题