QT передает данные между потоками, рабочая функция doWork() не запускается ⇐ C++
QT передает данные между потоками, рабочая функция doWork() не запускается
Я новичок в Qt, и у меня возникла проблема. Я пытаюсь отправить данные из рабочего потока, используя сигнал dataReady для размещения в updateData основного окна. Моя проблема в том, что моя функция doWork не запускается и не передает сигнал. Проект разрабатывается на RPi 4B в Qt5. Что я сделал не так, так как перепробовал много примеров из интернета и ничего не меняется.
заголовочный файл рабочего
класс MyThreadWorker: общедоступный QThread { Q_OBJECT публика: плавать х; плавать y; плавать z; целое правильно; публика: MyThreadWorker(); частный: Adafruit_BNO055 * imu_first; QTimer * таймер; сигналы: void dataReady(float x, float y, float z, int правильно); общественные слоты: недействительный doWork(); недействительный старт(); }; исходный файл рабочего
void MyThreadWorker::start() { imu_first = новый Adafruit_BNO055; imu_first->imu_initialization(); таймер = новый QTimer(); таймер-> старт (1000); qDebug() sig_bno_handler(); gpioSleep(0, 0, 1000); imu_first-> savevector (); //запись данич х=imu_first->myStruct.x; y=imu_first->myStruct.y; z=imu_first->myStruct.z; правильно = imu_first-> init_correct; qDebug() старт(); //установка диапазона ползунков температуры ui->slider1->setMinimum(10); ui->slider2->setMinimum(10); ui->slider1->setMaximum(50); ui->slider2->setMaximum(50); //imuobiekt->imu_initialization(); gpioSleep(0, 0, 2000); } void MainWindow::updateData(float x, float y, float z, int правильно) { //обработка данных в главном окне } Я очень хочу, чтобы это сработало.
Я новичок в Qt, и у меня возникла проблема. Я пытаюсь отправить данные из рабочего потока, используя сигнал dataReady для размещения в updateData основного окна. Моя проблема в том, что моя функция doWork не запускается и не передает сигнал. Проект разрабатывается на RPi 4B в Qt5. Что я сделал не так, так как перепробовал много примеров из интернета и ничего не меняется.
заголовочный файл рабочего
класс MyThreadWorker: общедоступный QThread { Q_OBJECT публика: плавать х; плавать y; плавать z; целое правильно; публика: MyThreadWorker(); частный: Adafruit_BNO055 * imu_first; QTimer * таймер; сигналы: void dataReady(float x, float y, float z, int правильно); общественные слоты: недействительный doWork(); недействительный старт(); }; исходный файл рабочего
void MyThreadWorker::start() { imu_first = новый Adafruit_BNO055; imu_first->imu_initialization(); таймер = новый QTimer(); таймер-> старт (1000); qDebug() sig_bno_handler(); gpioSleep(0, 0, 1000); imu_first-> savevector (); //запись данич х=imu_first->myStruct.x; y=imu_first->myStruct.y; z=imu_first->myStruct.z; правильно = imu_first-> init_correct; qDebug() старт(); //установка диапазона ползунков температуры ui->slider1->setMinimum(10); ui->slider2->setMinimum(10); ui->slider1->setMaximum(50); ui->slider2->setMaximum(50); //imuobiekt->imu_initialization(); gpioSleep(0, 0, 2000); } void MainWindow::updateData(float x, float y, float z, int правильно) { //обработка данных в главном окне } Я очень хочу, чтобы это сработало.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение