QIODevice中::阅读:设备未打开

问题描述 投票:7回答:5

我试着从一个文件中读取并投入到文本编辑和它口口声声说的QIODevice ::阅读:设备未打开。 .txt文件是在相同的位置,我的.qrc和.cpp文件。我从以下在线一步一步的指导。从我的理解,他们改变了,当他们从Q4去Q5的东西。有没有人对我怎样才能解决这个问题的任何暗示。谢谢

//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();
};
c++ qt qt4 qt-creator
5个回答
7
投票

如果你从.qrc资源文件中读取,你必须运行QMAKE(Qt Creator中“建设 - >运行QMAKE”),它才可用。


2
投票

你不能传递给QFile::open()文件的绝对路径,而你不检查打开文件的结果。根据你的情况,这是一个失败,open()返回false,但你忽略了的,而不是固定,导致它的问题(错误的路径)它。

这有小人物做的Qt 4 - >的Qt 5的升级,以及一切与你假设你的应用情况与发现自己当前目录下的错误的事情。一般来说,目前的目录(或工作目录)是任意的,与平台和具体情况,以及完全在你的控制。除非用户为您提供了真实隐含引用当前工作目录下的文件名(例如,作为给定命令行参数的相对路径),则必须使用绝对文件路径或东西是行不通的。


0
投票

它可以自QT5有时可能不会MSVC2010工作涉及到的Qt版本。我的Qt 5.4和我的代码给了同样的错误,当它与MSVC2010 OpenGL的工作作为一个编译器。我手动添加MinGW的32位使用它作为编译器和它的工作。附:我没有Qt的5.4安装MSVC2013,并将其与MSVC2010 OpenGL的作品有时没有错误,但不是在这种情况下。


0
投票

我有这个问题,它变成了Qt Creator中没有的.qrc文件实际添加到我的项目。我在Mac上使用Qt Creator的4.1.0和项目视图并不总是得到创建一个新项目,需要先造物主重新启动后填充。我这个问题的版本可能会涉及到的。


0
投票

它不会有什么使用Qt版本。即使您的.txt文件是在相同的目录中.cpp文件,你还需要添加的目录。我有同样的问题,而简单的解决方案行之有效。阿尔曼Arefi

© www.soinside.com 2019 - 2024. All rights reserved.