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

标签 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() );
}

最佳答案

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

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

static QTextEdit *textEdit;

在任何函数之外。

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

private:
    QTextEdit *m_textEdit;

请记住,使用new 分配的内存会一直分配到您delete 它为止。

关于c++ - Qt 在其他范围内访问 TextEdit 的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16326849/

相关文章:

c++ - 默认选择第 0 个索引处的 QListWidget 项目

c++ - 停止 QTextCursor::insertText() 修改 QTextDocument 滚动条范围

qt - QPlainTextEdit 强制重绘

c++ - 在 C++ 中将 vector <unsigned char> 转换为 HBITMAP

c++ - 使用 boost::bind 排序

c++ - 查找dll的依赖模块

c++ - Qt 覆盖 QLabel PaintEvent

c++ - 如何访问呈现在屏幕上的原始小部件像素?

qtextedit selectedtext() 返回控制字符

c++ - 独立关闭多个 GLUT 窗口