QToolButton предотвращает перемещение

Есть ли способ предотвратить QToolButton от того, чтобы быть "нажатым" при нажатии? Я где-то читал эту настройку

button->setCheckable(false);

должен сделать трюк, но это не так.

2 ответа

Решение

Есть способ сделать это через 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);

Добавьте QAction на панель инструментов и используйте его для управления кнопкой вашего инструмента

// button action
QAction * poBtnAction = poToolbar->addWidget(button);
// disable button
poBtnAction->setEnabled(false);
Другие вопросы по тегам