我想把文件句柄和流作为我的类的私有成员。
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";
}
这不是很有用,因为我不能在以后的类的主函数中写到这个流。 这两者在我看来是等同的,但显然不是。
我对这个实现还没有定论。 如果有人有更好的方法建议(比如使用静态或其他),那也是很好的。
我通过刷新输出文件流(outputFileStream)让它与指针一起工作。
我还想知道如何在QTextStream中使用指针,下面是我的做法。
outputFileStream->setString(new QString("Your string"));