首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QTextEdit未设置文本

QTextEdit未设置文本
EN

Stack Overflow用户
提问于 2012-04-23 17:18:58
回答 2查看 1.8K关注 0票数 1

我相信对我的问题有一个简单的解释,但我就是看不出来。我正在尝试将一个文本文件读入QTextEdit,但显然我无法在此方法中更改QTextEdit文本,并且我不明白为什么。

代码语言:javascript
复制
Document::Document(QWidget *parent) : QWidget(parent)
{
    this->layout = new QGridLayout(this);
    this->layout->setSpacing(2);
    this->layout->setMargin(0);
    this->setLayout(layout);
    this->textArea = new QTextEdit(this);
    this->textArea->setLineWrapMode(QTextEdit::NoWrap);
    this->textArea->setAcceptDrops(true);
    this->textArea->setAcceptRichText(true);
    this->textArea->setUndoRedoEnabled(true);
    this->textArea->setFont(QFont("Mono" , 11));
    this->layout->addWidget(textArea);
    this->textArea->show();
    this->textArea->setFocus();
    this->textArea->setText("Prueba de texto1");
}

void Document::open(QString archivo)
{
    std::cout << "Opening..................." << std::endl;
    this->textArea->setPlainText("Prueba de texto2");
    QFile file(archivo);
    QTextStream stream(&file);
    //this->textArea->append(stream.readAll());
    this->textArea->setText(stream.readAll());
    std::cout << "Opened" << std::endl;

}

我第一次在构造函数中使用SetText时,它工作得很好,但当我从open调用它时,它就不起作用了。请帮帮忙

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-24 02:38:54

您忘记了在QFile对象上调用open()

代码语言:javascript
复制
    QFile file(archivo); 
    if (file.open(QFile::ReadOnly){
         QTextStream stream(&file);
         ...
    } else {
        /// Oops, no pude abrir el archivo para leer :(
    }
票数 3
EN

Stack Overflow用户

发布于 2012-04-24 00:03:16

试一试

代码语言:javascript
复制
this->textArea->setPlainText(QString(stream.readAll());

或者更好地将整个流的事情替换为

代码语言:javascript
复制
QFile *file = new QFile(archivo);
this->textArea->setPlainText(QString(file->readAll()));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10277790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档