crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Как сделать визуальный индикатор загрузки для QX11EmbedContainer?
Гость_Гость_mdlv_*_*
сообщение 17.12.2015, 14:02
Сообщение #1





Гости








    


Добрый день! Возникла необходимость отображать прелоадер, пока в контейнер QX11EmbedContainer не встроится виджет. Момент начала отображения предзагрузчика есть, по сигналу clientIsEmbedded() я могу определить момент встраивания и прекратить показ прелоадера, также прекратить показ в случае ошибки. Но возник вопрос - какими средствами лучше отображать сам прелоадер?
Если я правильно понимаю, QSplashScreen не подходит, т.к. он привязан к виджету.
QProgressBar - непонятно, как устанавливать процент выполнения операции.
Показывать виджет с *.gif в виде QMovie? По идее прелоадер должен отображаться поверх QX11EmbedContainer и не быть самостоятельным окном.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 17.12.2015, 14:33
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2913
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


можно создать окно с прогрессбаром (и кнопкой отмены, если надо), и показать его модально, но только вызовом open(), а не exec() (последний управление не возвращает, пока окно не закрыли).
Затем в цикле необходимо

1) перерисовывать и обрабатывать ввод
    QApplication::processEvents(QEventLoop::AllEvents,0);


2) если произошло отслеживаемое событие - взвести флаг, выйти из цикла, убить окно

3) если на диалоге нажали отмену (в классе диалога выставился bool флажок) - проверить и выйти из цикла, убить окно


Возможно, кто-то подскажет более интересный способ, но я другого способа не нашёл )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 17.12.2015, 16:30
Сообщение #3


Мастер
******

Группа: Модератор
Сообщений: 3295
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Как вариант, сделать отдельным приложением, и расширить до так сказать тулкита по выполнению: встраивание, копирование, обновление, удаление ...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 5.3.2021, 13:42