Qt:同步 QLineEdit 和 QTextEdit

Qt: Synchronous QLineEdit and QTextEdit

我有一个 Qt 项目,它有一个 UI,其中有许多 QLineEdit 和一个 QTextEdit。我只想将单个 QLineEdit 的输入合并到 QTextEdit 中。例如:当有人输入第一个 QLineEdit 时,我希望 QTextEdit 的第一行匹配。如果有人在第 13 QLineEdit 行输入内容,QTextEdit 的第 13 行应该更新以匹配。如果行编辑器为空,则文本编辑器的相同行也将为空。谢谢。

你可以在你的 window/dialog 的 class 中有一个 UpdateTextEdit 插槽,像这样:

void ExampleDialog::UpdateTextEdit(){
    QString str= ui->lineEdit1->text();
    str+= "\n";
    str+= ui->lineEdit2->text();
    str+= "\n";
    str+= ui->lineEdit3->text();
    str+= "\n";
    ...
    //add text from all your line edits
    ...

    ui->textEdit->setPlainText(str);
}

并在 dialog/window 的构造函数中,将来自所有 QLineEdittextChanged 信号连接到 UpdateTextEdit() 插槽,如下所示:

ExampleDialog::ExampleDialog(QWidget* parent):QDialog(parent),...{
    ...
    ...
    connect(ui->lineEdit1, SIGNAL(textChanged(const QString &)), this, SLOT(UpdateTextEdit()));
    connect(ui->lineEdit2, SIGNAL(textChanged(const QString &)), this, SLOT(UpdateTextEdit()));
    connect(ui->lineEdit3, SIGNAL(textChanged(const QString &)), this, SLOT(UpdateTextEdit()));
    ...
}