Qt写入QTextStream指针

时间:2014-06-25 15:31:21

标签: c++ qt pointers stream

我想包含一个文件句柄和流作为我的班级的私人成员。

class Window : public QMainWindow, private Ui::Window
{
    Q_OBJECT

    public:
    .
    .
    .
    private:
        QFile * outputFile;
        QTextStream * outputFileStream;
};

然后我想在构造函数中初始化句柄和流:

Window::Window(QWidget *parent)
    : QMainWindow(parent)
{
    setupUi(this);
    outputFile = new QFile("/path/to/file.log");
    outputFile->open(QIODevice::WriteOnly | QIODevice::Text);
    outputFileStream = new QTextStream(outputFile);
    *outputFileStream << "=======List=======\n\n";
}

这会创建文件,但不会向其写入任何内容。但是,当我使用QFile的指针而不是QTextStream时,它可以工作:

Window::Window(QWidget *parent)
    : QMainWindow(parent)
{
    setupUi(this);
    outputFile = new QFile("/path/to/file.log");
    outputFile->open(QIODevice::WriteOnly | QIODevice::Text);
    QTextStream outputFileStream(&outputFile);
    outputFileStream << "=======List=======\n\n";
}

这不是很有用,因为我以后不能在类的main函数中写入此流。这两个似乎与我相当,但显然不是。

我没有参与此实施。如果有人建议采用更好的方法(即使用静电或其他东西),那也很棒。

2 个答案:

答案 0 :(得分:1)

我通过刷新outputFileStream来使用指针。

答案 1 :(得分:0)

我还想知道如何在QTextStream中使用指针。 这是我的操作方式:

outputFileStream->setString(new QString("Your string"));