4

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

...
bool mEnable = true;

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

2 回答 2

3

您不能直接触发禁用的按钮,但即使可以,您也很可能不应该这样做,因为这很烦人。

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

如果您仍想使用禁用的按钮,您可能需要查看这篇文章:

Qt 4.4:禁用接收鼠标事件的小部件

于 2012-09-24T07:42:10.137 回答
0

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

正如 Mark 指出的那样,通过单击来禁用(或启用)一个项目是不常见的。禁用某个项目是一种表示单击它根本不会执行任何操作的方式。

(在发布此之前,我没有阅读 Mark 的回答下面的评论)

于 2018-09-05T19:04:54.080 回答