У меня проблема с QThread. Предположим, я хочу создать класс-поток, что сделает некоторый расчет бесконечным временем. И если я пошлю сигнал, поток остановит вычисление и что-то выполнит.Qthread freezing MainWindow
// Класс-нить
class A: public QThread
{
protected:
void run() { exec(); }
public slots:
void calc() { while (true) {do somethning}}
void display() { display something }
}
// Класс Главное окно
class MainWindow
{
void buttonClick() {emit signalDisplay() }
}
// главный файл
void main()
{
A * a = new A;
a->start();
a->calc();
MainWindow w;
connect(&w, SIGNAL(signalDisplay()), a, SLOT(display()));
w.show();
}
Проблема заключается в том, что если я называю a-> известково() он заморозит приложение. Но я думал, что он работает отдельно? Или я что-то упускаю?
Читайте один из я бесконечных руководств по QThread. Рассказ: не добавляйте слоты в подклассы QThread, иначе у вас появятся проблемы. – peppe