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 的构造函数中,将来自所有 QLineEdit
的 textChanged
信号连接到 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()));
...
}
我有一个 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 的构造函数中,将来自所有 QLineEdit
的 textChanged
信号连接到 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()));
...
}