Я работаю над этим часами и не могу понять это, и я не могу найти какую-либо помощь в Интернете, которая работает. По сути, суть того, что я пытаюсь достичь, состоит в том, чтобы иметь графический интерфейс Qt с кнопкой и QTextBrowser
. Когда я нажимаю кнопку, я хочу, чтобы она отображала сообщение, а затем продолжала печатать это сообщение каждые 10 секунд.
Я решил, что буду использовать QTimer, потому что имеет смысл иметь таймер для отображения сообщения каждые 10 секунд. Когда я изначально реализовал это в моем слоте `buttonClicked (), это привело к зависанию программы. Я поискал в Интернете решение и нашел QApplication :: processEvents ().
Итак, в основном в моей функции у меня было что-то вроде этого:
while(1)
{
QTimer *timer;
connect(...) //omitted parameters for this example
timer.start(10000);
ui->diplay->append("Message");
while(timer.isActive())
{
QApplication::processEvents()
}
}
Я подумал, что он вырвется из цикла timer.isActive (), но он просто не останется там.
Итак, я решил, что это проблема с потоками. Итак, я понял, как использовать QThreads, но все еще не могу заставить его работать. Обычно, когда я создаю поток с таймером на нем, и поток сообщает таймеру о запуске, программа закрывается и консоль сообщает: "