代码之家  ›  专栏  ›  技术社区  ›  madasionka

QToolButton阻止移动

  •  0
  • madasionka  · 技术社区  · 6 年前

    QToolButton 当点击时被“压入”吗?我在什么地方读到过那种背景

    button->setCheckable(false);
    

    应该这样做,但事实并非如此。

    2 回复  |  直到 6 年前
        1
  •  3
  •   IAmInPLS    6 年前

    有一种方法可以通过QProxy样式实现:

    class ButtonProxyStyle : public QProxyStyle
    {
    public:
        const int pixelMetric(PixelMetric metric, const QStyleOption *option = 0, const QWidget *widget = 0) 
        {
            int ret = 0;
            switch (metric) 
            {
            case QStyle::PM_ButtonShiftHorizontal:
            case QStyle::PM_ButtonShiftVertical:
                ret = 0;
                break;
            default:
                ret = QProxyStyle::pixelMetric(metric, option, widget);
                break;
            }
            return ret;
        }
    };
    

    然后,用你的按钮:

    myToolButton->setStyle(new ButtonProxyStyle);
    
        2
  •  0
  •   Simon    6 年前

    添加 QAction 并使用它来控制您的工具按钮

    // button action
    QAction * poBtnAction = poToolbar->addWidget(button);
    // disable button
    poBtnAction->setEnabled(false);