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

时间:2013-05-01 21:29:18

标签: c++ qt qtextedit

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

代码:

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

1 个答案:

答案 0 :(得分:1)

您需要一些超出范围的变量才能访问它。

您的textEdit是在函数的本地范围内定义的。如果要访问cpp文件的全局空间,可以将其定义为

static QTextEdit *textEdit;

在任何功能之外。

更好的想法可能是将其定义为MainWindow类的成员变量:

private:
    QTextEdit *m_textEdit;

请记住,分配有new的内存会在delete之前分配。