我相信对我的问题有一个简单的解释,但我就是看不出来。我正在尝试将一个文本文件读入QTextEdit,但显然我无法在此方法中更改QTextEdit文本,并且我不明白为什么。
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调用它时,它就不起作用了。请帮帮忙
发布于 2012-04-24 02:38:54
您忘记了在QFile对象上调用open()
QFile file(archivo);
if (file.open(QFile::ReadOnly){
QTextStream stream(&file);
...
} else {
/// Oops, no pude abrir el archivo para leer :(
}发布于 2012-04-24 00:03:16
试一试
this->textArea->setPlainText(QString(stream.readAll());或者更好地将整个流的事情替换为
QFile *file = new QFile(archivo);
this->textArea->setPlainText(QString(file->readAll()));https://stackoverflow.com/questions/10277790
复制相似问题