Qt写入QTextStream指针

问题描述 投票:1回答:2

我想把文件句柄和流作为我的类的私有成员。

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";
}

这不是很有用,因为我不能在以后的类的主函数中写到这个流。 这两者在我看来是等同的,但显然不是。

我对这个实现还没有定论。 如果有人有更好的方法建议(比如使用静态或其他),那也是很好的。

c++ qt pointers stream
2个回答
1
投票

我通过刷新输出文件流(outputFileStream)让它与指针一起工作。


0
投票

我还想知道如何在QTextStream中使用指针,下面是我的做法。

outputFileStream->setString(new QString("Your string"));
© www.soinside.com 2019 - 2024. All rights reserved.