Qt Creator  多线程读取文件到程序显示
                 利用QT Creator多任务读取一个文档到程序里
   为了防止直接读取文件里的内容太大而发生卡顿,于是多线程读取将更高效的解决这个问题。
   效果图如下:
 
其中pro文件无需改动,默认就好,头文件h里面的内容为
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include 
#include 
#include 
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MyObj;
class MyObj : public QObject
{
    Q_OBJECT
public:
    MyObj(); //新的线程
signals:
    void toLine(QString line);
private slots:
    void doWork();
};
class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private slots:
    void appendText(QString); //定义一个槽
private:
    Ui::MainWindow *ui;
    QThread *t;
    MyObj *obj;
};
#endif // MAINWINDOW_H
而MAIN主文件的内容为了防止中文乱码做了如下修改:
#include "mainwindow.h"
#include 
#include 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //设置中文字体 防止乱码
    a.setFont(QFont("Microsoft Yahei", 9));
    //设置中文编码
#if (QT_VERSION <= QT_VERSION_CHECK(5,0,0))
#if _MSC_VER
    QTextCodec *codec = QTextCodec::codecForName("GBK");
#else
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
#endif
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForTr(codec);
#else
    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForLocale(codec);
#endif
    MainWindow w;
    w.show();
    return a.exec();
}
接下来重点来了,源文件CPP里为
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include 
#include 
#include 
#include 
#include 
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    t = new QThread();      //QThread
    obj = new MyObj();
    obj->moveToThread(t);
    qDebug()<<"main thread:"<
                                    
                                        
                                            1