#include "thread.h"
#include "ui_thread.h"
#include <QThread>
#include <QFile>
#include <QTextStream>
#include <QDebug>
Thread::Thread(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Thread)
{
ui->setupUi(this);
connect(ui->pushButton, &QPushButton::clicked, this, &Thread::save);
connect(ui->pushButton_2, &QPushButton::clicked, this, &Thread::set);
}
Thread::~Thread()
{
delete ui;
}
void Thread::save()
{
qDebug() << "MAIN THREAD ID:" << QThread::currentThreadId();
auto *thread = QThread::create([this](){
QFile file("./setting.txt");
file.open(QIODevice::WriteOnly);
QTextStream stream(&file);
QString str =(ui->textEdit->toPlainText());
stream<<str;
qDebug() << "THREAD ID:" << QThread::currentThreadId();
});
thread->start();
}
void Thread::set()
{
qDebug() << "MAIN THREAD ID:" << QThread::currentThreadId();
QThread::create([](Thread*thread){
QFile file("./setting.txt");
file.open(QIODevice::ReadOnly);
thread->ui->textEdit->setPlainText(file.readAll());
},this)->start();
}
set函数读取文本时报错:no matching function for call to 'create'
需要C++11支持