QThread signal START

228
17 ноября 2017, 08:27

Добрый день! Не могу найти как запустить QThread из другого класса.

class some;
class some2;
thread1 = new QThread;
connect(thread1, &QThread::started, some, &SomeClass::Go);
connect(some, &SomeClass::s_stop, thread1, &QThread::quit);

И вот теперь самое главное, я хочу запускать поток по сигналу.

connect(some2, &SomeClass2::s_start, thread1, &QThread::start);

Такая вот запись не работает, пишет что слишком мало аргументов у сигнала. Если написать thread1-> start все работает. Но, мне нужно именно по сигналу. Возможно ли так сделать?

Answer 1
connect(some2, &SomeClass2::s_start, thread1, QThread::start);

Исправьте на

connect(some2, &SomeClass2::s_start, thread1, &QThread::start);

В этой строке тоже

connect(thread1, QThread::started, some, &SomeClass::Go);

на

connect(thread1, &QThread::started, some, &SomeClass::Go);

Если посмотреть внимательней, то сигнатура метода QThread::start выглядит так:

void start(QThread::Priority);

Соответственно и Ваш сигнал должен иметь аналогичную сигнатуру:

void s_start(QThread::Priority);
READ ALSO
C++ DLL библиотека

C++ DLL библиотека

Всем приветРеализовал библиотеку, все отлично, оно работает

257
Таймер win32 на С++

Таймер win32 на С++

Здравствуйте, выполняю задания на С++ и всё хорошо, только вот проблема с таймеромВот кусок самого задания:

325
Не запускается проект на Qt? [требует правки]

Не запускается проект на Qt? [требует правки]

Не запускается проект на Qt,после того как начал добавлять свои файлы,написанный на с++

262
В чем ошибка скрипта jquery?

В чем ошибка скрипта jquery?

Задача: скрипт определяет высоту блока в зависимости от наличия отсутствия в теле body другогоЯ использовал следующий вариант:

297