QToolButton阻止移动

时间:2017-11-23 16:10:42

标签: qt button qtoolbutton

点击时有没有办法阻止QToolButton被“压入”?我在某处读到了设置

button->setCheckable(false);

应该做的伎俩,但事实并非如此。

2 个答案:

答案 0 :(得分:1)

有一种方法可以通过QProxyStyle来实现:

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);

答案 1 :(得分:0)

QAction添加到工具栏并使用它来控制工具按钮

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