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