Qt在其他范围内访问TextEdit的文本

Qt access TextEdit's text in other scope

本文关键字:TextEdit 文本 访问 范围内 其他 Qt      更新时间:2023-10-16

我正在尝试创建一个简单的IDE。现在我完全失败了!我有一些动作,当我点击"new"动作时,它应该为我的TabWidget添加一个新页面,并在里面创建一个textit。这实际上是有效的,但我不知道如何使用TextEdit。例如,如果我想保存它,我需要访问textit的文本,但如何访问呢?

代码:

void MainWindow::on_actionNew_triggered()
{
    QTextEdit* textEdit = new QTextEdit();
    ui->Tabs->addTab(textEdit, "New Tab");
    ui->Tabs->setCurrentIndex( ui->Tabs->count() );
}

您需要一些不在作用域内的变量才能访问它。

您的textEdit在函数的局部作用域中定义。如果你想访问cpp文件的全局空间你可以将其定义为

static QTextEdit *textEdit;

在任何函数之外。

一个更好的主意可能是将其定义为MainWindow类的成员变量:

private:
    QTextEdit *m_textEdit;

请记住,使用new分配的内存在您使用delete之前是分配的。