#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
mythread *my_thread = new mythread();
my_thread->moveToThread(&workthread);
// 信号和槽
QObject::connect(&workthread, &QThread::finished,
my_thread, &QObject::deleteLater); // 线程结束,自动删除对象
QObject::connect(this,&MainWindow::sendsignal,
my_thread,&mythread::test);// 发送信号 到线程 槽函数
QObject::connect(my_thread,&mythread::ID,
this,&MainWindow::GetID);
workthread.start();
}
MainWindow::~MainWindow()
{
delete ui;
workthread.quit();
workthread.wait();
}
void MainWindow::on_pushButton_clicked()
{
qDebug()<< "主程序 "<<(int)QThread::currentThreadId();
emit sendsignal();
}
void MainWindow::GetID(QString ID)
{
ui->label->setText(ID);
}