在Qt中实时禁用小部件

时间:2012-09-02 14:58:40

标签: qt qt4

我有两个单选按钮。单击其中一个时,它应禁用某些小部件并激活其他小部件。我该怎么做?

例如,如果我检查radioButton1,那么它应该立即禁用lineEdit,如果我检查radioButton2它应该启用第一行编辑并禁用lineEdit2。

这一切都是实时的。

1 个答案:

答案 0 :(得分:6)

目前没有太多可以继续的,一般的答案如下:

处理单选按钮的相应信号。使用此信号,您​​可以触发方法/循环,您可以使用setEnabled(false)将窗口小部件设置为禁用。

根据您的情况,您可以使用类似于以下两种方法的方法,根据您收到的信号调用这两种方法:

void OnRadioButton1()
{
    lineEdit->setEnabled(false);
    lineEdit2->setEnabled(true);
}

void OnRadioButton2()
{
    lineEdit->setEnabled(true);
    lineEdit2->setEnabled(false);
}

这真的非常直截了当。我不明白这个“实时”概念在哪里发挥作用。这是对单个输入“事件”的单一响应。

当然,这也可以是具有特定(布尔)参数的单个方法或其他任何方法。但鉴于我们在这里讨论的假设示例案例并不一定反映您的真实代码,这至少应该为您提供一些想法。