【问题标题】:Qt: Synchronous QLineEdit and QTextEditQt:同步 QLineEdit 和 QTextEdit
【发布时间】:2016-05-14 14:31:23
【问题描述】:

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

【问题讨论】:

  • 还有,QTextEdit 也可以编辑吗?
  • 其实我不需要对这个Text进行任何特殊的编辑,lineedit的索引对我来说已经足够了。所以我也可以使用不可编辑的文本。我只需要那些 QLineedit 的索引,但我不知道如何合并它们。

标签: qt qtextedit qlineedit


【解决方案1】:

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

并在对话框/窗口的构造函数中,将来自所有QLineEdits 的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()));
    ...
}

【讨论】:

    猜你喜欢
    • 2013-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多