我想包含一个文件句柄和流作为我类(class)的私有(private)成员。
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";
}
这不是很有用,因为我不能稍后在类的主函数中写入这个流。两者在我看来是等价的,但显然不是。
我对这个实现不满意。如果有人对执行此操作的更好方法(即使用 static 或其他东西)有建议,那也很好。
最佳答案
我通过刷新 outputFileStream 使其与指针一起工作。
关于c++ - Qt 写入 QTextStream 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24412846/