Ребят, вот мой пользовательский класс: 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 ответов

15 просмотров

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

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

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

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

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