Qt:同步QLineEdit和QTextEdit

时间:2016-05-14 14:31:23

标签: qt qtextedit qlineedit

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

1 个答案:

答案 0 :(得分:0)

您可以在窗口/对话框的类中添加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);
}

并在对话框/窗口的构造函数中,将textChanged所有QLineEdit信号连接到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()));
    ...
}