0

このコードでファイルが開かない理由がわかりません。助けてください。さまざまなことを試しましたが、何も機能しません。ファイルを開くことさえ信じられませんか?

これは 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()));

}

4

1 に答える 1

3

ファイルを開きません。ファイルを自分で開いてから作成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

于 2013-03-08T19:53:29.307 に答える