首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QIODevice::read:设备未打开

QIODevice::read:设备未打开
EN

Stack Overflow用户
提问于 2014-07-26 03:22:27
回答 6查看 26.2K关注 0票数 10

我试图从一个文件中读取并放入到文本编辑中,但它一直显示QIODevice:: read :device not open。.txt文件与我的.qrc和.cpp文件位于相同的位置。我是按照网上的一步一步的指南来做的。据我所知,当他们从Q4转到Q5时,他们改变了一些东西。有没有人能告诉我怎么解决这个问题。谢谢

代码语言:javascript
复制
//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();
};
EN

回答 6

Stack Overflow用户

发布于 2015-01-31 06:35:13

如果你正在读取.qrc资源文件,你必须在Qt Creator中运行qmake ("Build->Run qmake“),然后才能使用它。

票数 7
EN

Stack Overflow用户

发布于 2014-07-26 08:06:00

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

这与Qt4 -> Qt5升级没有任何关系,这一切都与你对你的应用程序碰巧发现自己所在的当前目录的错误假设有关。一般来说,当前目录(或工作目录)是任意的,特定于平台和环境,完全不受您的控制。除非用户给你一个隐式引用到当前工作目录的文件名(例如,在给定命令行参数的情况下作为相对路径),否则你必须使用绝对文件路径,否则将无法工作。

票数 3
EN

Stack Overflow用户

发布于 2015-10-09 21:43:08

这可能与Qt的版本有关,因为Qt5有时不能与MSVC2010一起工作。我有Qt 5.4,当它作为编译器与MSVC2010 OpenGL一起使用时,我的代码给出了相同的错误。我手动添加了MinGW 32位来使用它作为编译器,它工作了。附注:我还没有安装Qt 5.4的MSVC2013,它有时可以在MSVC2010 OpenGL上正常工作,但不是在这种情况下。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24963081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档