У меня есть простой пользовательский интерфейс формы, в котором есть слот для кнопки, запускающей поток:
void MainWindow::LoadImage()
{
aThread->run();
}
И метод run() выглядит так:
void CameraThread::run()
{
qDebug("Staring Thread");
while(1)
{
qDebug("ping");
QThread::sleep(1);
}
}
Когда я нажимаю кнопку, которая вызывает LoadImage(), пользовательский интерфейс перестает отвечать на запросы. Я периодически вижу сообщение «ping» в качестве вывода отладки, но пользовательский интерфейс зависает, ни на что не реагирует. Почему мой поток не работает отдельно? CameraThread, полученный как общедоступный QThread. Я использую gcc версии 4.4.3 (Ubuntu 4.4.3-4ubuntu5) с библиотеками QT и QT Creator из репозиториев Ubuntu 10.04 (x86).