Название: вопрос про 'new QSerialPort(this)' Отправлено: Mike-Aiki от Декабрь 05, 2013, 13:12 Установил QSerialPort, Qt 4.8.5. Объект создаю в конструкторе класса окна, типа:
[h] QSerialPort* serial; [cpp] serial = new QSerialPort(this); connect(serial ,SIGNAL(readyRead()),this,SLOT(slotReadingSerialData())); (в порту заглушка, генерю тестовую посылку для проверки приема). При этом, если компилить отладочную версию, при выполнении при создании объекта выдаётся "QObject: Cannot create children for a parent that is in a different thread", при этом сигнал readyRead() не генерится. Но, если компилить релиз, то никаких предупреждений не возникает, и вроде как всё работает, т.е. слот отрабатывает. Тоже самое наблюдаю в поставляемом примере "terminal" - в отладочной версии выдаётся предупреждение, и не работает "эхо", в релизе - всё нормально. Если создавать 'serial = new QSerialPort', то тоже не генерится сигнал, естественно. Можно, конечно, создать тред, в котором что-то типа waitForReadyRead() крутить, но просто заинтересовало - это нормально, что в релизе нет ругани, и всё работает? В своих проектах, если получал такой варнинг, то без соответствующего 'moveToThread()' ничего не работало... ??? Название: Re: вопрос про 'new QSerialPort(this)' Отправлено: Bepec от Декабрь 05, 2013, 14:33 Если вы в разных потоках пытаетесь писать что-то в порт - тогда он выдаст такую фигню и порт завянет.
Если же нет у вас таких ситуаций - просто пересоберите проект. |