如何启用禁用按钮

时间:2012-09-24 07:37:18

标签: qt button

我有一个工具按钮,我想在点击它时禁用它(如果它已启用)并在点击它时启用它(并且它被禁用)。问题是,当点击它时,我写了相应的插槽,它正在禁用按钮。到目前为止它正在运作。但是一旦禁用并点击它,它就不会跳转到插槽,它会永久完全禁用。我使用了错误的功能还是错误的信号?

...
bool mEnable = true;

void Test::OnEnableButtonTriggered() {
  mEnable = !mEnable;
  ui.OnEnable->setEnabled(mEnable);
}

2 个答案:

答案 0 :(得分:3)

你不能直接触发禁用按钮,但即使你可以,你很可能不应该这样做,因为它非常恼人。

我建议您使用QCheckbox来实现您的目标。

如果您仍想使用已禁用的按钮,可能需要查看此帖子:

Qt 4.4: disabled widgets receiving mouse events

答案 1 :(得分:0)

可以将

QPushButton设置为可检查。使用isChecked()可以读出按钮的状态。连接到toggled()插槽以处理此状态的更改。

如Mark所指出的,通过单击禁用(或启用)某项并不常见。禁用项目是一种指示,单击该项目根本无济于事。

(发布此帖子之前,我没有阅读过Mark的回答下方的评论)