Как реализовать многопоточность в Qt?

103
31 января 2021, 13:50

Суть проблемы надо реализовать чтобы фоном работали одни функции но можно не прерываю их выполнения работать с другой часть кода. Для этого решил реализовать простую программу, которая состоит их двух label и одного button, один label постоянно генерирует новые числа и выводит в label, а в другой label генерировать числа по нажатию кнопки. Как это делать?

Вот форма которую создал

Вот код который писал с созданным классом

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "examplethreads.h"
#include <QThread>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QThread *thread=new QThread(this);
    ExampleThreads th;
    connect(this,SIGNAL(destroyed()),thread,SLOT(quit()));
    th.moveToThread(thread);
    thread->start();
}
MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::on_pushButton_2_clicked()
{ 
    ui->label_2->setText(QString::number(rand()));
}

examplethreads.h

#ifndef EXAMPLETHREADS_H
#define EXAMPLETHREADS_H
#include <QCoreApplication>
#include <QThread>
class ExampleThreads:public QObject
{
public:  
    void run();
};
#endif // EXAMPLETHREADS_H

examplethreads.cpp

#include "examplethreads.h"
#include <QDebug>
#include "ui_mainwindow.h"
#include "mainwindow.h"
void ExampleThreads::run()
{
    int a=rand();
}
READ ALSO
XERCES: Warning&#39;и при компиляции (LNK4217, LNK4049) [закрыт]

XERCES: Warning'и при компиляции (LNK4217, LNK4049) [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

112
SDL_ttf текст не выводится в opengl

SDL_ttf текст не выводится в opengl

Вот SDL_ttf функция:

322
Почему функции cos(), sin(), atant2() преобразуют long double в double?

Почему функции cos(), sin(), atant2() преобразуют long double в double?

Пишу проект, в котором необходима большая точность вычислений угла, а так же cos и sinОбнаружил, что значения, передаваемые мной в приведённые...

100