У меня проблема с многопоточным Qt. У меня есть класс, который я хочу как нитьОшибка многоточечного запуска Qt
//protdata.cpp
class ProtData : public QObject
{
Q_OBJECT
private:
QList<ProtDataInputHandler *> _inputs;
public:
ProtData();
void addInput();
....
};
void ProtData::addInput(QIODevice *input, bool network_order)
{
_inputs.append(new ProtDataInputHandler());
}
У меня есть еще один класс display.cpp, где я создать экземпляр объекта protdata как нить с помощью moveToThread();
//display.cpp
...
QThread* newThread = new QThread();
_protdata->moveToThread(newThread);
newThread->start();
...
В какой-то момент, в display.cpp:
//display.cpp
....
_protdata->addInput();
Когда я выполнить метод addInput, я получаю следующее сообщение об ошибке:
QObject: Cannot create children for a parent that is in a different thread. (Parent is ProtData(0x19bba50), parent's thread is QThread(0x19b3c18), current thread is QThread(0x1f08930)
Что получить не так? Я должен переместить также класс ProtDataInputHandler в newThread? Как?
Благодаря