使用线程只读文件 qt
时间: 2023-08-21 19:03:38 浏览: 78
在 Qt 中,可以使用 QThread 类来创建一个线程进行文件读取操作。以下是一个示例:
```cpp
#include <QCoreApplication>
#include <QThread>
#include <QFile>
#include <QDebug>
class FileReader : public QThread
{
public:
FileReader(QString filePath) : m_filePath(filePath) {}
protected:
void run() override
{
QFile file(m_filePath);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qWarning() << "Failed to open file.";
return;
}
QTextStream in(&file);
while (!in.atEnd())
{
QString line = in.readLine();
qDebug() << line;
}
file.close();
}
private:
QString m_filePath;
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString filePath = "path/to/your/file.txt";
FileReader reader(filePath);
reader.start();
return a.exec();
}
```
在这个示例中,我们创建了一个 FileReader 类,继承自 QThread。在 run() 方法中,我们打开文件并读取其中的内容。在主函数中,我们创建了一个 FileReader 对象,并调用 start() 方法启动线程。读取文件的操作将在新线程中执行,不会阻塞主线程。
阅读全文