首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QSpinBox箭头按钮在最大值时不禁用

QSpinBox箭头按钮在最大值时不禁用
EN

Stack Overflow用户
提问于 2021-04-28 21:25:07
回答 2查看 287关注 0票数 2

当旋转框中的值处于最大值或最小值时,我试图使旋转框上的箭头按钮显示为禁用。

我正在使用一个QStyleSheet,它包含:

代码语言:javascript
复制
QAbstractSpinBox::up-arrow:off, QAbstractSpinBox::up-arrow:disabled {
    background: #131313;
}

但是,当我将spinbox设置为最大值时,没有设置“off”伪状态。因此,这种风格永远不会被应用。

我试过:

  • 使用QSpinBox、QDoubleSpinBox选择器(如上面的
  • )设置其他属性,如宽度和高度

我知道样式的读取是正确的,因为如果我完全禁用SpinBox,就会出现这种样式。

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2021-05-11 20:08:45

大多数自旋框都是定向的,但是QSpinBox也可以作为一个圆形旋转盒运行,也就是说,如果范围为0-99,而当前值为99,单击"up“将给出0如果包装()设置为true。如果您想要循环行为,请使用辅助setWrapping()。

票数 0
EN

Stack Overflow用户

发布于 2022-08-16 16:29:24

你必须打开QStyle::SH_SpinControls_DisableOnBounds

代码语言:javascript
复制
#include <QApplication>
#include <QProxyStyle>

class MyProxyStyle : public QProxyStyle
{
  public:
    int styleHint(StyleHint hint, const QStyleOption *option = nullptr,
                  const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const override
    {
        if (hint == QStyle::SH_SpinControls_DisableOnBounds)
            return 1;
        return QProxyStyle::styleHint(hint, option, widget, returnData);
    }
};

int main(int argc, char **argv)
{    
    QApplication a(argc, argv);
    a.setStyle(new MyProxyStyle);
    // ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67308111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档