C ++ GUI文本不显示

时间:2014-01-18 01:42:11

标签: c++ qt

基本上我做了一个简单的程序来搜索某个单词的文本文件。但是我的文本文件没有显示在textEdit对象中,它只显示为空白。我正确地将文本文件放入资源和所有内容中。我真的很感激一些意见。

#include <QtCore/QFile>
#include <QtCore/QTextStream>
#include "find.h"
#include "ui_find.h"

Find::Find(QWidget *parent) : QWidget(parent), ui(new Ui::Find)
{
    ui->setupUi(this); //sets up user interface
    getTextFile();
}

Find::~Find()
{
    delete ui;
}

void Find::on_goButton_clicked()
{
    QString word = ui->lineEdit->text(); //gets text and stores in word
    ui->textEdit->find(word, QTextDocument::FindWholeWords);
}

void Find::getTextFile()
{
    QFile myFile(":/textfile.txt"); //what file
    myFile.open(QIODevice::ReadOnly); //opens file

    QTextStream textStream(&myFile); //convert to stream
    QString line = textStream.readAll(); //store into variable
    myFile.close(); //close file

    ui->textEdit->setPlainText(line); //display text
    QTextCursor textCursor = ui->textEdit->textCursor(); //moves cursor into position
    textCursor.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor, 1); //moves cursor into position

}

应用程序输出也有红色字母QIODevice :: read:device not open

4 个答案:

答案 0 :(得分:1)

Qt Creator的干净重建被破坏了。只需永久删除qmake保留项目特定makefile的工具包特定文件夹。

尝试再次进行构建。 rcc将被调用特定于添加的.qrc文件,由旧的makefile文件跳过,因为qmake现在必须提供新的makefile文件。

答案 1 :(得分:1)

当我使用MSVC2010 OpenGL作为编译器时,我有Qt 5.4和我的代码给出了同样的错误。我手动添加了MinGW 32bit以将其用作编译器并且工作正常。 附:我没有为我的Qt 5.4安装MSVC2013,它有时可以在没有错误的情况下使用MSVC2010 OpenGL,但在这种情况下不行。

答案 2 :(得分:0)

确保在项目中添加了qrc文件。如果你使用qrc文件作为外部源,你应该通过调用主函数中的QResource :: registerResource(“path to file”)来注册它。

答案 3 :(得分:0)

我刚刚用相同的错误/症状解决了这个问题。问题是我的构建工具包没有可用的编译器。我最终不得不手动选择我的Microsoft Visual C ++编译器11.0(x86)。我想它无法自动检测到它。这似乎是开始Qt5的新Windows用户的常见错误消息。