Я не понимаю, почему этот код не будет открывать файл

Я не могу понять, почему этот код не будет открывать файл, пожалуйста, помогите. Я пробовал много разных вещей, но ничего не работает. Я не верю, что даже открывает файл?

это main.cpp

#include "communicate.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);

Communicate window;

window.setWindowTitle("Communicate");
window.show();
return app.exec();
}

это мой заголовок.

using namespace std;
class Communicate : public QWidget
{
Q_OBJECT

public:
Communicate(QWidget *parent = 0);//private slots:
//void onenter();
//void OnMinus();

private:
QFile namefile;
QTextStream file;
QString name;
QLabel *label;
QTextEdit *left;
QTextEdit *right;
QLineEdit *user;};

#endif

это главное окно .cpp

#include "communicate.h"Communicate::Communicate(QWidget *parent)
: QWidget(parent),namefile("pname.txt"),file(&namefile)
{

QPushButton *enter = new QPushButton("enter", this);
enter->setGeometry(205, 205, 90, 35);

//QPushButton *minus = new QPushButton("-", this);
//minus->setGeometry(50, 100, 75, 30);

label = new QLabel("money: 500", this);
label->setGeometry(105, 0, 90, 30);

left = new QTextEdit(this);
left ->setGeometry(0,0,100,200);

right = new QTextEdit(this);
right ->setGeometry(200,0,100,200);

user = new QLineEdit(this);
user ->move(0,205);
user ->resize(200,35);

name=file.readLine();
right->setText(name);
label->setText(name);
namefile.close();
//connect(enter, SIGNAL(clicked()), this, SLOT(onenter()));
//connect(minus, SIGNAL(clicked()), this, SLOT(OnMinus()));

}

0

Решение

Это не открывает файл. Вы должны открыть файл самостоятельно, а затем создать свой QTextStream и передайте ему открытый файл. Как это:

if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
return;

QTextStream in(&file);
name = file.readLine();

Ваш текстовый поток не должен быть членом класса, поскольку вы используете его только в конструкторе. Вы можете прочитать все об использовании QFile а также QTextStream Вот. http://qt-project.org/doc/qt-4.8/qfile.html

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]