如何从 QTabWIdget C++ 读取 textedit 对象的文本?

Posted

技术标签:

【中文标题】如何从 QTabWIdget C++ 读取 textedit 对象的文本?【英文标题】:How to read text of textedit object from QTabWIdget C++? 【发布时间】:2020-09-14 07:39:00 【问题描述】:

每当创建新标签时,我都会调用相同的 TextEdit 对象。但是其他选项卡上的文本无法访问。如何从新标签页中打开的其他 TextEdit 中获取文本。

我正在尝试将文本保存在文件中。

每个新标签页都使用相同的 TextEdit

void MainWindow::on_actionsavew_triggered()

    QString file_name = QFileDialog::getSaveFileName(this,"Open the file","X://");
        QFile file(file_name);
        if(!file.open(QFile::WriteOnly | QFile::Text))
            QMessageBox::warning(this,"Error","File not Open");
            return;
        
        QTextStream out(&file);
        QString text = ui->textEdit->toPlainText();
       out<<text;
       file.flush();
       file.close();

【问题讨论】:

如何添加新标签? void MainWindow::on_actionNew_Tab_triggered() ui->tabWidget->addTab(new QTextEdit(ui->textEdit), QString("Tab %0").arg(ui->tabWidget->计数()+1)); ui->tabWidget->setCurrentIndex(ui->tabWidget->count()-1); 【参考方案1】:

这里

QString text = ui->textEdit->toPlainText();

是对我们的提示,表明您实际上是在使用 qt creator 中的 qt 设计器将这些小部件添加到选项卡和窗口中,因此您可以使用相同的方法访问任何小部件及其属性

例如

QString textFromTab1 = ui->textEditInTab1->toPlainText();

【讨论】:

每个标签都有相同的TextEdit。 怎么可能?你是在前后移动 Widget 吗???? 每个新标签中也有相同的文本编辑。该代码仅适用于第一个选项卡。 void MainWindow::on_actionNew_Tab_triggered() ui->tabWidget->addTab(new QTextEdit(ui->textEdit), QString("Tab %0").arg (ui->tabWidget->count()+1)); ui->tabWidget->setCurrentIndex(ui->tabWidget->count()-1);

以上是关于如何从 QTabWIdget C++ 读取 textedit 对象的文本?的主要内容,如果未能解决你的问题,请参考以下文章

题解 UVA272 TEX Quotes

QTabWidget 或 QTabBar 使用 C++ 在不同选项卡中显示相同的 QWidget

如何从 Qt 上的 QTabWidget 获取 currentTabName?

Python:如何从 QTabWidget 查询当前选项卡

python 如何从 QTabwidget 获取选项卡名称

PyQt4:如何/何时从 QTabWidget 的子类发出自定义信号?