简体   繁体   English

Qt 写入 QTextStream 指针

[英]Qt writing to QTextStream pointer

I want to include a file handle and stream as my class' private members.我想包含一个文件句柄和流作为我班级的私有成员。

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

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

I then want to initialize the handle and stream in the constructor:然后我想在构造函数中初始化句柄和流:

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

This creates the file, but writes nothing to it.这将创建文件,但不向其中写入任何内容。 However, when I use a pointer for the QFile, but not the QTextStream, it works:但是,当我使用 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";
}

This is not very useful because I can't write to this stream later in the class's main function.这不是很有用,因为我无法稍后在类的 main 函数中写入此流。 The two seem equivalent to me, but obviously are not.两者似乎与我相当,但显然不是。

I'm not set on this implementation.我没有设置这个实现。 If someone has a suggestion on a better way of doing this (ie using static or something) that's also great.如果有人对更好的方法(即使用静态或其他方法)提出建议,那也很棒。

我通过刷新 outputFileStream 让它与指针一起工作。

I also wanted to know how to use pointer with QTextStream.我还想知道如何在 QTextStream 中使用指针。 Here is how i did this :这是我如何做到的:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM