QIODevice::Lesen: Gerät nicht öffnen
Ich versuche aus einer Datei zu Lesen und in den text Bearbeiten und es hält zu sagen QIODevice::Lesen:Gerät nicht öffnen. Die .txt-Datei in demselben Speicherort wie meine .qrc und .cpp-Datei. Ich war nach einer Schritt für Schritt Anleitung aus dem Internet. Von meinem Verständnis, Sie verändert etwas, wenn Sie ging von Q4 bis Q5. Hat jemand einen Tipp, wie ich dies beheben können. Dank
//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();
};
Können wir sehen, einige code? Wenn ich raten müsste, sind Sie nicht öffnen Sie die Datei korrekt. Wenn Sie nur das Lesen aus einer Datei, warum nutzen Sie nicht die
Es wird nicht lassen Sie mich setzen Sie das richtige syntax - //Meine findstuff.h #ifndef FINDSTUFF_H #define FINDSTUFF_H #include <QWidget> namespace Ui {class FindStuff;} class FindStuff : public QWidget{ Q_OBJECTpublic: explizite FindStuff(QWidget *parent = 0); ~FindStuff(); private slots: void on_goButton_clicked();private: Ui::FindStuff *ui; void getTextFile();};
Der code, den Sie gab uns nicht helfen, wir müssen sehen, wie du mit
QFile
Klasse, oder verwenden Sie einfach fstream.h
? Zusätzlich, wenn Sie mit Qt .txt-Datei muss in das build-Verzeichnis, nicht in das source-Verzeichnis (vorausgesetzt, Sie haben das Arbeitsverzeichnis nicht ändern). Wenn Sie die Standardeinstellungen verwenden, wird es in einem Ordner namens build-%{CurrentProject:Name}-%{CurrentKit:FileSystemName}-%{CurrentBuild:Name}
Es wird nicht lassen Sie mich setzen Sie das richtige syntax - //Meine findstuff.h #ifndef FINDSTUFF_H #define FINDSTUFF_H #include <QWidget> namespace Ui {class FindStuff;} class FindStuff : public QWidget{ Q_OBJECTpublic: explizite FindStuff(QWidget *parent = 0); ~FindStuff(); private slots: void on_goButton_clicked();private: Ui::FindStuff *ui; void getTextFile();};
Der code, den Sie gab uns nicht helfen, wir müssen sehen, wie du mit
open()
InformationsquelleAutor user3878223 | 2014-07-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie Lesen aus einem .qrc-Ressource-Datei, die Sie müssen ausführen von qmake ("Build->Ausführen von qmake" im Qt-Creator), bevor es verfügbar sein wird.
InformationsquelleAutor randag
Du bist nicht bestandener absolute Pfad der Datei an
QFile::open()
, und Sie sind nicht das Ergebnis überprüfen, das öffnen der Datei. In Ihrem Fall, es ist ein Fehler undopen()
gibt false zurück, aber Sie sind zu ignorieren, statt das problem zu lösen (der falsche Pfad), die es verursacht.Dies hat nichts zu tun mit Qt 4 -> Qt-5-Update, und alles, was mit Ihnen zu tun, vorausgesetzt, die falsche Sache über das aktuelle Verzeichnis Ihrer Anwendung findet sich mit. Im Allgemeinen, das aktuelle Verzeichnis (oder working-directory) ist willkürlich, und der Plattform - und Umstands-spezifisch ist, und vollständig aus Ihrer Kontrolle. Es sei denn, der Benutzer gibt Ihnen einen Namen, der implizit bezogen auf das aktuelle Arbeitsverzeichnis (z.B. als relativer Pfad angegeben ist ein Kommandozeilen-argument), müssen Sie die Verwendung von absoluten Pfaden oder Dinge, die einfach nicht funktionieren.
Es hat nicht "funktioniert einwandfrei". Es funktioniert, weil Sie aufgerufen, das tutorial in einer bestimmten Weise, die es scheint zu arbeiten.
Ich heruntergeladen Q4 um zu sehen, ob es funktionieren würde. Sie es Tat. So gibt es etwas, dass geändert von Q4 bis Q5. Sie waren falsch. Aber, danke.
InformationsquelleAutor Kuba Ober
Es kann in Bezug auf die version von Qt, da Qt5 manchmal nicht funktioniert, mit MSVC2010.
Ich habe Qt 5.4, und mein code gab den gleichen Fehler, wenn es funktioniert, mit MSVC2010 OpenGL als ein compiler. Ich manuell Hinzugefügt MinGW 32bit verwenden Sie als compiler-und es funktionierte.
P. S. ich habe nicht installiert MSVC2013 für Qt 5.4., und es funktioniert manchmal mit MSVC2010 OpenGL ohne Fehler, aber in diesem Fall nicht.
InformationsquelleAutor rela
Hatte ich dieses problem und es stellte sich heraus, Qt Creator hatte eigentlich nicht Hinzugefügt .qrc-Datei zu meinem Projekt. Ich bin mit der Qt Creator 4.1.0 auf einem Mac und die "Projekte" nicht bekomme immer aufgefüllt, wenn ein neues Projekt erstellen zuerst einen Neustart des Schöpfers. Meine version von diesem problem beziehen kann.
InformationsquelleAutor Niall
Es hat nichts zu tun mit der Qt-version.
Auch wenn Ihr .txt-Datei wird im gleichen Verzeichnis wie Ihre .cpp-Datei, müssen Sie noch das Verzeichnis einfügen. Ich hatte das gleiche problem und die einfache Lösung, die gut funktioniert.
Arman Arefi
InformationsquelleAutor user11014544