Qt:禁用按钮而不将其变为灰色

时间:2012-11-29 12:51:37

标签: c++ qt

我需要在Qt 4.8中制作一个可检查的按钮,当选中它时会被禁用。

我遇到的问题是按钮变为灰色,我需要始终保持相同的颜色。关于两条可能的路径,我有两个问题:

1)当我使用button.setEnabled(false)时,有没有办法禁用灰色效果?

2)有没有办法挂钩click事件,以便我可以“模拟”已禁用的属性?

提前致谢!

[编辑]为了给出一些上下文,我有两个按钮可以相互切换,这就是我需要阻止点击按下按钮的原因。

3 个答案:

答案 0 :(得分:2)

试试button.blockSignals(true)。当使用Qt样式表禁用按钮时,您也可以覆盖按钮的外观。

答案 1 :(得分:0)

  

为了给出一点上下文,我有两个应该切换的按钮   彼此,这就是为什么我需要防止点击按下   按钮。

您应该使用QButtonGroup代替。

  

取消选中按钮的唯一方法是用户   检查另一个按钮......

From doc

  

在独占组中,用户无法取消选中当前选中的   按钮点击它;相反,组中的另一个按钮必须是   单击以设置该组的新选中按钮。

答案 2 :(得分:0)

用于禁用工具按钮并放置您选择的图标而不是变成灰色

  1. 你必须加载创建 QPixmap 对象的图标,比如 qpm,
  2. 创建 QIcon 对象说图标
  3. icon.addPixmap(qpm,QIcon::Disabled,QIcon::On) 这一行会显示图标
  4. 在工具按钮上设置图标
  5. setStyleSheet

启用工具按钮时只需更改 3. icon.addPixmap(qpm,QIcon::Normal,QIcon::On)