仅在填写两个字段时启用按钮

时间:2011-07-07 15:42:16

标签: c++ qt

如果只有两个lineEdit填充了文本,如何实现启用按钮的功能?

2 个答案:

答案 0 :(得分:5)

您希望监控两行的修改:

connect(lineEdit1, SIGNAL(textChanged(const QString&)), SLOT(checkShouldEnableButton()));
connect(lineEdit2, SIGNAL(textChanged(const QString&)), SLOT(checkShouldEnableButton()));

然后,当文本同时存在时,您需要启用/禁用按钮:

void YourWidget::checkShouldEnableButton() {
    button->setEnabled(
        !lineEdit1->text().isEmpty() && !lineEdit2->text().isEmpty()
        );
}

如果您只关心用户编辑,则可以使用textEdited(const QString&)信号代替textChanged信号。

答案 1 :(得分:1)

连接两个小部件' textChanged向同一个插槽发出信号,该插槽调用

button -> setEnabled (edit1 -> text .size () && edit2 -> text .size ())