我想包含一个文件句柄和流作为我的类的私有成员。
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=======nn";
}
创建文件,但不写入任何内容。然而,当我使用指针的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=======nn";
}
这不是很有用,因为我不能在类的主函数中稍后写入此流。这两者在我看来是等同的,但显然不是。
我不确定这个实现。如果有人有一个更好的方法来做到这一点(例如使用静态或其他东西),这也是伟大的。
我通过刷新outputFileStream让它与指针一起工作。
我也想知道如何使用QTextStream指针。我是这样做的:
outputFileStream->setString(new QString("Your string"));