Russian Qt Forum
Ноябрь 23, 2024, 19:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Обновление интерфейса типа view->upate() (в KDevelop было)  (Прочитано 4904 раз)
Даша
Гость
« : Декабрь 19, 2012, 13:37 »

По кнопке запускаю алгоритм, в котором переодически textedit->append("полет нормальный")
Как же пограмотнее сделать, что бы сообщения в течении работы появлялись,а не по завершении алгоритма?
В KDevelop было view->upate(), а в Qt что все таки поток создавать?
Записан
Bepec
Гость
« Ответ #1 : Декабрь 19, 2012, 13:45 »

qApp->processEvents().
А ещё лучше выносить в отдельный поток.
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #2 : Декабрь 19, 2012, 14:34 »

"Периодически" это в цикле или по таймеру?
хотя какая разница, просто вставляете, например, перед textedit->append("полет нормальный") qApp->processEvents() и радуетесь, что интерфейс программы не виснет Улыбающийся
Вот только нужно не забывать о подключении QApplication
Второй вариант: через потоки
самый простой вариант переопределяйте метод run() класса QThread, и запускайте поток, впрочем в документации это подробно описано Подмигивающий
Записан

skandinavijos
Гость
« Ответ #3 : Декабрь 19, 2012, 15:14 »

а в чем проблема создать поток? переопределить один метод и связать одну пару слот-сигнал. к тому же это более кошерно.

Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #4 : Декабрь 19, 2012, 23:15 »

Иногда проще добавить одну строчку, чем наследоваться от класса, переопределять в нем какие то методы, и в них что-то помещать - мороки меньше Улыбающийся
И пусть автор темы сама решает, что больше подходит по заданию Подмигивающий
Записан

Даша
Гость
« Ответ #5 : Декабрь 20, 2012, 09:59 »

Спасибо, народ!
Записан
skandinavijos
Гость
« Ответ #6 : Декабрь 20, 2012, 19:52 »

не, просто от processEvent, например, окно не отрисовывается заново, если его перекрыть другим. с потоком такого не было. во всяком случае с моим алгоритмом, который почти пол часа считал - было так, хотя может и я что-то не так делал
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.055 секунд. Запросов: 22.