Я не могу понять, почему этот код не будет открывать файл, пожалуйста, помогите. Я пробовал много разных вещей, но ничего не работает. Я не верю, что даже открывает файл?
это 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()));
}
Это не открывает файл. Вы должны открыть файл самостоятельно, а затем создать свой 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
Других решений пока нет …