[gelöst] QFile Variable global machen??
Verfasst: 25. August 2007 18:38
Moin,
ich hab gerad das Problem das ich mit einem QFileDialog eine Datei öffne, klappt auch wunderbar,
allerdings will ich auf diese Datei nun in anderen Proceduren zugreifen können. Bsp.:
.h Datei:
#include <QtGui/QMainWindow>
#include <QFileDialog>
#include <QTextStream>
class ComPort : public QMainWindow
{
Q_OBJECT
public:
ComPort(QWidget *parent = 0);
virtual ~ComPort();
private:
Ui::ComPortClass ui;
QTextStream in;
QFile file;
private slots:
void on_dateiladenButton_clicked();
void on_dateischliessenButton_clicked();
void on_sortierenButton_clicked();
};
#endif
.cpp:
void ComPort::on_dateiladenButton_clicked()
{
QString fn = QFileDialog::getOpenFileName(this, QString::null, QString::null);
file(fn); // <--GEHT NICHT "no match for call to `(QFile) (QString&)'"
QTextStream in(&file); // <--QTextStream muß davor stehen, obwohl im Header definiert
}
So, wenn ich nun in der .cpp Datei nun "QFile file(fn)" angebe, geht es.
"in" ist ja in der Header Datei auch global definiert, wenn ich dann jedoch unter void on_sortierenButton_clicked(); darauf zugreifen will, zuerst in.seek(0); danach mit in>>zeichen, findet er kein Zeichen.
Geht das nur mit Pointern? Was mach ich falsch? Wenn ich z.B. in der Header Datei ein int definiere kann ich ohne neu definition in jeder Procedur dieses int nutzen und Werte somit von Procedur zu Procedur übergeben, warum geht das nicht mit QFile?
Puh, viel geschrieben, ich hoffe es wird verständlich wo mein Problem liegt...
Gruß
Ralf
ich hab gerad das Problem das ich mit einem QFileDialog eine Datei öffne, klappt auch wunderbar,
allerdings will ich auf diese Datei nun in anderen Proceduren zugreifen können. Bsp.:
.h Datei:
#include <QtGui/QMainWindow>
#include <QFileDialog>
#include <QTextStream>
class ComPort : public QMainWindow
{
Q_OBJECT
public:
ComPort(QWidget *parent = 0);
virtual ~ComPort();
private:
Ui::ComPortClass ui;
QTextStream in;
QFile file;
private slots:
void on_dateiladenButton_clicked();
void on_dateischliessenButton_clicked();
void on_sortierenButton_clicked();
};
#endif
.cpp:
void ComPort::on_dateiladenButton_clicked()
{
QString fn = QFileDialog::getOpenFileName(this, QString::null, QString::null);
file(fn); // <--GEHT NICHT "no match for call to `(QFile) (QString&)'"
QTextStream in(&file); // <--QTextStream muß davor stehen, obwohl im Header definiert
}
So, wenn ich nun in der .cpp Datei nun "QFile file(fn)" angebe, geht es.
"in" ist ja in der Header Datei auch global definiert, wenn ich dann jedoch unter void on_sortierenButton_clicked(); darauf zugreifen will, zuerst in.seek(0); danach mit in>>zeichen, findet er kein Zeichen.
Geht das nur mit Pointern? Was mach ich falsch? Wenn ich z.B. in der Header Datei ein int definiere kann ich ohne neu definition in jeder Procedur dieses int nutzen und Werte somit von Procedur zu Procedur übergeben, warum geht das nicht mit QFile?
Puh, viel geschrieben, ich hoffe es wird verständlich wo mein Problem liegt...
Gruß
Ralf