如何检查两个 QLineEdit 如果它们不为空

How to check two QLineEdit If they are not empty

我有三个控件,两个 QTextLine 和一个 QPushButton

程序启动时,添加按钮会被禁用,必须两个QTextLine不为空才能启用添加按钮。

我有以下代码,但效果不佳:

void Question_Answer::on_newQuestion_txt_textChanged(const QString &arg1)
{
    if(arg1.isEmpty())
    {
        ui->addNewQuestion_btn->setEnabled(false);
    }
    else
    {
        ui->addNewQuestion_btn->setEnabled(true);
    }
}

void Question_Answer::on_newAnswer_txt_textChanged(const QString &arg1)
{
    if(ui->newAnswer_txt->text().isEmpty())
    {
        ui->addNewQuestion_btn->setEnabled(false);
    }
    else
    {
        ui->addNewQuestion_btn->setEnabled(true);
    }
}

现在,如何检查两个 QTextLine 是否不为空,如果其中任何一个为空,如何禁用添加按钮。

只需连接一个插槽即可处理两个 LineEdits

textChanged 信号
void Question_Answer::onTextChanged(const QString &arg1){
    if(ui->newAnswer_txt->text().isEmpty() || ui->newQuestion_txt->text().isEmpty()){
        ui->addNewQuestion_btn->setEnabled(false);
    }else{
        ui->addNewQuestion_btn->setEnabled(true);
    }
}

在header class:

// ...
private slots:
    void onTextChanged();
// ...

在源文件中:

// Setup the connections in the constructor.

void Question_Answer::onTextChanged()
{
    const bool editable1 = ui->newAnswer_txt->text().size() > 0;
    const bool editable2 = ui->newQuestion_txt->text().size() > 0;
    ui->addNewQuestion_btn->setEnabled( editable1 && editable2 );
}