我有两个单选按钮,点击其中一个应该禁用一些小部件并激活其他一些小部件。我该怎么做呢?
例如,如果我选中radioButton1
,它会立即禁用一个lineEdit,如果我选择radioButton2
,它将启用第一个lineEdit并禁用lineEdit2。
所有这些都是实时的。
目前没有太多可供参考的信息,一般的解决办法如下:
处理单选按钮的适当信号。使用该信号可以触发一个方法/循环,在其中使用setEnabled(false)
将您的小部件设置为禁用。
根据您的情况,您可以类似以下两种方法,具体取决于您接收到的信号:
void OnRadioButton1()
{
lineEdit->setEnabled(false);
lineEdit2->setEnabled(true);
}
void OnRadioButton2()
{
lineEdit->setEnabled(true);
lineEdit2->setEnabled(false);
}
这其实很简单。我不明白为什么会有“实时”的概念。它只是对一个单一的输入“事件”做出单一的响应。
当然,这也可以是一个带有特定(布尔)参数的单一方法或其他形式。但考虑到我们正在讨论一个假设的示例情况,它并不一定反映您的真实代码,但至少可以提供一些想法。
error: no matching function for call to 'QComboBox::isEnabled(bool)
,LineEdit小部件也是如此。我做错了什么? - Varun ChitresetEnabled(false)
。你的错误提示是 isEnabled(bool)
。这个函数确实存在,但是没有布尔参数,并且仅指示某物是否启用。它不会将其设置为启用。所以你可能需要更正一下。为什么会有无限循环?我完全看不出来。你可能需要向我们展示你的代码。请更新你的问题。 - Bart