Ребят, вот мой пользовательский класс: class videostream : public QThread {

Q_OBJECT

public:
videostream();
~videostream();

private:
VideoCapture cap;
QString killLoopFlag;
public slots:
void killLoop(QString status) { killLoopFlag = status; }
void run(int id);
void Stop(int i);
signals:
void Stream(Mat f);
};


Вот имплементация этого класса
#include "videostream.h"
#include <qdebug.h>

videostream::videostream()
{
}

videostream::~videostream()
{
}

void videostream::run(int id) {
killLoopFlag = "false";
Mat frame;
cap.open(id);
while (cap.isOpened()) {
cap >> frame;
emit Stream(frame);
qDebug() << "CAP "<< id<<" running";
qDebug() << "Status " << killLoopFlag << " fucking";
if (killLoopFlag == "true") {
break;
}
}

}
void videostream::Stop(int i) {
while (true) {
cap.release();
qDebug() << cap.isOpened();
}
}
вот я пытаюсь послать в поток к моему классу сигнал чтобы остановить бесконечный цикл:
connect(stereothread, SIGNAL(started()), signalMapper, SLOT(map()));
signalMapper->setMapping(stereothread, "true");
connect(signalMapper, SIGNAL(mapped(QString)), stereostream, SLOT(killLoop(QString)));
цикл не останавливается
что я делаю не так?

2 ответов

13 просмотров

подозрение: что-бы сигнал отработал в контекте потока, нужно что-бы завершился бесконечный цикл

https://doc.qt.io/qt-5/qthread.html#requestInterruption

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Привет!) Кто как юзает переменные в строках?) Чисто ради интереса Вот так: echo "У меня {$bananasAmount} бананов"; Или вот так: echo "У меня ${bananasAmount} бананов";
Виталий
3
разработчик ботов скидывает портфолио, боты которые он уже создал. А вот как узнать что это именно он их создал?
Gosudar
4
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта