QToolButton 防止移动
QToolButton prevent from moving
有没有办法防止 QToolButton
在点击时变成 "pressed in"?我在某处读到该设置
button->setCheckable(false);
应该可以解决问题,但事实并非如此。
将QAction添加到工具栏并用它来控制您的工具按钮
// button action
QAction * poBtnAction = poToolbar->addWidget(button);
// disable button
poBtnAction->setEnabled(false);
有一种方法可以通过 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);
有没有办法防止 QToolButton
在点击时变成 "pressed in"?我在某处读到该设置
button->setCheckable(false);
应该可以解决问题,但事实并非如此。
将QAction添加到工具栏并用它来控制您的工具按钮
// button action
QAction * poBtnAction = poToolbar->addWidget(button);
// disable button
poBtnAction->setEnabled(false);
有一种方法可以通过 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);