QTool按钮防止移动
是否有方法防止单击时“按下”QToolButton?我在某个地方读到了那种背景QTool按钮防止移动,qt,button,qtoolbutton,Qt,Button,Qtoolbutton,是否有方法防止单击时“按下”QToolButton?我在某个地方读到了那种背景 button->setCheckable(false); 我们应该这样做,但事实并非如此 添加到工具栏并使用它控制工具按钮 // button action QAction * poBtnAction = poToolbar->addWidget(button); // disable button poBtnAction->setEnabled(false); 添加到工具栏并使用它控制工具按钮
button->setCheckable(false);
我们应该这样做,但事实并非如此 添加到工具栏并使用它控制工具按钮
// button action
QAction * poBtnAction = poToolbar->addWidget(button);
// disable button
poBtnAction->setEnabled(false);
添加到工具栏并使用它控制工具按钮
// 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);
有一种方法可以通过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);
谢谢你的回答,但我没有工具栏。我只有一个按钮。基本上,我正在做的是定制:。感谢您的回答,但我没有工具栏。我只有一个按钮。基本上,我正在做的是定制:。你应该画一个按钮。当它处于按下状态时,您应按正常方式绘制它。只需复制pase paint方法并修复它。或者使用QSS以与正常相同的方式绘制按下的按钮。您应该绘制一个按钮。当它处于按下状态时,您应按正常方式绘制它。只需复制pase paint方法并修复它。或使用QSS以正常方式绘制按下的按钮。谢谢!事实上,我试过这个解决方案,但没有成功,既然你建议了,我又试了一次,做了更多的调查。我想我遇到了一个问题,因为我还设置了
myToolButton->setStyleSheet(“QToolButton{border:none;color:#223f5a;}”)代码>我认为这两种风格不适合。您是否知道如何将此样式表集成到QProxyStyle
?您是对的:样式表和代理样式不能一起工作。如果你使用我的解决方案,你将不得不从头开始画你的按钮。也许对您来说,最好的解决方案是子类QAbstractButton并提供您想要的行为?谢谢!事实上,我试过这个解决方案,但没有成功,既然你建议了,我又试了一次,做了更多的调查。我想我遇到了一个问题,因为我还设置了myToolButton->setStyleSheet(“QToolButton{border:none;color:#223f5a;}”)代码>我认为这两种风格不适合。您是否知道如何将此样式表集成到QProxyStyle
?您是对的:样式表和代理样式不能一起工作。如果你使用我的解决方案,你将不得不从头开始画你的按钮。也许对您来说最好的解决方案是将QabStretcButton子类化,并给出您想要的行为?