QIODevice :: read:设备未打开

use*_*223 8 c++ qt qt4 qt-creator

我试图从一个文件读取并进入文本编辑,它一直说QIODevice :: read:device not open..txt文件与我的.qrc和.cpp文件位于同一位置.我是在线跟踪分步指南.根据我的理解,当他们从第四季度到第五季度时,他们改变了一些东西.有没有人对我如何解决这个问题有任何暗示.谢谢

//My findstuff.h 
#ifndef FINDSTUFF_H 
#define FINDSTUFF_H 
#include <QWidget> 
namespace Ui {class FindStuff;} 

class FindStuff : public QWidget{ 
Q_OBJECT
public:
  explicit FindStuff(QWidget *parent = 0);
  ~FindStuff();

private slots:
  void on_goButton_clicked();

private:
  Ui::FindStuff *ui; 
  void getTextFile();
};
Run Code Online (Sandbox Code Playgroud)

小智 7

如果您正在读取.qrc资源文件,则必须先运行qmake(Qt Creator中的"Build-> Run qmake")才能使用它.


Rei*_*ica 2

您没有将文件的绝对QFile::open()路径传递给,也没有检查打开文件的结果。在你的情况下,这是一个失败并open()返回 false,但你忽略它,而不是修复导致它的问题(错误的路径)。

这与 Qt 4 -> Qt 5 升级无关,并且与您对应用程序碰巧发现的当前目录的错误假设有关。一般来说,当前目录(或工作目录)是任意的,并且特定于平台和环境,并且完全不受您的控制。除非用户为您提供隐式引用当前工作目录的文件名(例如,作为给定命令行参数的相对路径),否则您必须使用绝对文件路径,否则根本无法工作。

  • 我下载了 Q4 看看它是否有效。它做了。所以从第四季度到第五季度有一些变化。你错了。但是,谢谢你。 (2认同)