聚焦时为QSpinBox设置边框

时间:2016-02-02 19:41:03

标签: c++ qt qtstylesheets

对于已经存在的Qt项目,我希望通过qss-fle为焦点小部件设置边框。但是我遇到了一些意想不到的结果。当我更改no control matching kind 'clickable', id 'btnApply', label 'Apply' (和QSpinBox)的边框时,边框会像我预期的那样发生变化,但按钮和向下按钮也会发生变化,看起来很难看。

enter image description here

这是我的样式定义(完整示例here):

QDoubleSpinBox

我的问题是:如何更改边框的外观并同时保留上行按钮和下按钮的外观。我正在寻找的解决方案不应该是跨平台或跨版本。

我的环境:
- KUbuntu 15.10(amd64);
- Qt 5.4(x64)。

更新

以下是另一个样式的另一个示例:

QSpinBox:focus
{
    border-width: 2px;
    border-style: solid;
    border-color: green;
}

小部件如下所示:

enter image description here

2 个答案:

答案 0 :(得分:3)

将样式表应用于_时,此窗口小部件将使用perl -pe 's-(\d+.?\d*)-($1/1000)-ge' file add tube 3033.303 2998.20695111 106.1801625 0.060325 6.22260621 y 0 0 0 add cube 3027.18924332 3032.17578955 114.50875 0.1689 6.17076909 y 0 0 0 完全绘制(此类不是公共API的一部分)。

所以你必须完全调整旋转框的样式,包括向上/向下按钮,或者根本不使用样式表。

上/下按钮不是分隔的小部件,因此您不能对它们应用不同的样式。

所以我建议继承QSpinBox并重新实现QStyleSheetStyle方法。在QSpinBox方法中,您只需将其称为默认实现,而不是绘制矩形。

答案 1 :(得分:2)

尝试使用其他随机样式编辑您的qss文件,看它是否一致。

QSpinBox
{
    border-width: 2px;
    border-style: solid;
    border-color : red;
}

QSpinBox:hover
{
    border-width: 2px;
    border-style: solid;
    border-color: blue;
}

编辑:

我看到你的箭仍然处于不良状态,所以我建议你做两件事:

  • 样式也是带有背景图像属性左右的上下箭头(拍摄所需箭头的屏幕截图等等)

  • forger通过样式表设置此部件的样式,并按代码覆盖“QPaintEvent onFocus处理程序”。将边框设置为绿色不会那么痛苦