0

有没有办法防止QToolButton点击时被“压入”?我在某个地方读到了那个设置

button->setCheckable(false);

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

4

2 回答 2

3

有一种方法可以通过 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);
于 2017-11-24T09:09:31.477 回答
0

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

// button action
QAction * poBtnAction = poToolbar->addWidget(button);
// disable button
poBtnAction->setEnabled(false);
于 2017-11-23T18:56:05.227 回答