Qt:文件读取不起作用

Posted

技术标签:

【中文标题】Qt:文件读取不起作用【英文标题】:Qt: file read does not work 【发布时间】:2013-12-28 15:33:24 【问题描述】:

我想读取一个文件并将其放入一个 Qstring 中,但该文件不被读取 我在谷歌搜索了很多样本​​,但它不起作用...... 我要读文件...

using namespace std;

 int main(int argc, char *argv[])

 

    QApplication app(argc, argv);


    QFile in1("file.txt");

    QTextStream in(&in1);

    if (in1.open(QFile::ReadOnly | QFile::Text))
    
        QLabel *label = new QLabel("read");
        label->show();
    

    if (!in1.open(QFile::ReadOnly | QFile::Text))
    
        QLabel *label = new QLabel("!read");
        label->show();
    
    QString s1;

    in >> s1;

    QLabel *label = new QLabel(s1);

    label->show();

    return app.exec();

 

给我看:!read

我包含了您能想到的所有内容,并且 file.txt 是真实存在的??!! :-(

【问题讨论】:

请正确缩进代码 对我来说,它显示read,然后是!read(请注意,open 被调用了两次;请使用else 而不是if (!...);在您的代码中,即使第一次打开是成功,第二个不是因为它已经打开了)然后是文件的内容如预期的那样。您确定将文件放在构建目录中吗? “将无法工作”是什么意思?就我而言,内容是一个词; OP的代码读取一个单词,所以它起作用了。不是我决定只读一个词;)我应该写“第一个词”而不是“内容”。问题是关于打开一个文件,我猜,读取操作只是一个简单的测试,看看它是否真的有效。 好的,谢谢大家,但我想逐字阅读而不是 readAll() 或 readLine() ??? 【参考方案1】:

下面的代码对我有用。

文件.txt

Hello World!

main.cpp

#include <QLabel>
#include <QApplication>

#include <QFile>
#include <QTextStream>
#include <QString>
#include <QDebug>

int main(int argc, char *argv[])

    QApplication app(argc, argv);
    QFile in1("file.txt");
    QTextStream in(&in1);

    if (in1.open(QFile::ReadOnly | QFile::Text))
    
        QLabel *label = new QLabel("read");
        label->show();
    

    if (!in1.open(QFile::ReadOnly | QFile::Text))
    
        QLabel *label = new QLabel("!read");
        label->show();
    

    QString s1;
    in >> s1;

    QLabel *label = new QLabel(s1);
    label->show();
    return app.exec();

构建

g++ -Wall -fPIC -lQt5Core -lQt5Widgets -I/usr/include/qt -I/usr/include/qt/QtCore -I/usr/include/qt/QtWidgets main.cpp && ./a.out

main.pro qmake 项目文件:

TEMPLATE = app
TARGET = main
greaterThan(QT_MAJOR_VERSION, 4):QT += widgets
SOURCES += main.cpp

它将为我显示所有三个标签,但我不确定这是否是您想要的。您的代码中也缺少错误处理。

【讨论】:

以上是关于Qt:文件读取不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Qt从基于Qt示例的QThread下载文件不起作用

为啥 QMenu:hover 在 Qt Designer 中不起作用

Qt:showMaximized() 在 Windows 中不起作用

为啥我的 QT 应用程序不起作用?

Qt QNetworkAccessManager 和插槽不起作用

Qt5.natvis 在 VS 2015 更新 2 中不起作用