ProgressBar в новом окне, помогите понять как сделать |
Здравствуйте, гость ( Вход | Регистрация )
ProgressBar в новом окне, помогите понять как сделать |
PVGDRK |
24.6.2010, 7:27
Сообщение
#1
|
Студент Группа: Участник Сообщений: 49 Регистрация: 27.4.2010 Пользователь №: 1662 Спасибо сказали: 0 раз(а) Репутация: 0 |
Имеется форма, на которой расположены различные виджеты. При нажатии на одну из кнопок начинается вычислительный процесс достаточно длительный. Мне нужно сделать так,чтобы при запуске этого процесса моя форма становилась неактивной и появлялось окно с ProgressBar... В FormFile я выбрала функцию AddNewItem , newUiWidget... на появившейся форме разместила ProgressBar и кнопки Ок и Cancel... Как теперь новую форму "привязать" к нажатию кнопки? Или это делается как то по-другому?
|
|
|
Алексей1153 |
24.6.2010, 8:10
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Можно появить прогресс-бар как модальное окно с родителем-главным окном. Так решится вопрос блокировки окна. Затем, из главного окна (вернее, из цикла обработки) сигналом двигать полоску + подпинывать обработку сообщений /*QApplication::*/processEvents(); , чтоб была перерисовка и реакция на кнопку Cancel (если захочется остановить процесс обработки)
|
|
|
PVGDRK |
24.6.2010, 8:18
Сообщение
#3
|
Студент Группа: Участник Сообщений: 49 Регистрация: 27.4.2010 Пользователь №: 1662 Спасибо сказали: 0 раз(а) Репутация: 0 |
Можно появить прогресс-бар как модальное окно с родителем-главным окном. Так решится вопрос блокировки окна. Затем, из главного окна (вернее, из цикла обработки) сигналом двигать полоску + подпинывать обработку сообщений /*QApplication::*/processEvents(); , чтоб была перерисовка и реакция на кнопку Cancel (если захочется остановить процесс обработки) Да, мне так и нужно сделать - модальное окно. Но как оно создается? Нужна новая форма, как сейчас у меня сделано или это окно как то по-другому делается? |
|
|
Алексей1153 |
24.6.2010, 8:27
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Давеча вот только перевод делал, кстати ))
http://www.forum.crossplatform.ru/index.php?showtopic=5154
Как-то так
только, честно, я сам ещё не пробовал На работе не поставлен Qt Сообщение отредактировал Алексей1153 - 24.6.2010, 9:04 |
|
|
Litkevich Yuriy |
24.6.2010, 8:52
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
надо заранее создать QProgressDialog с помощью оператора new и настроить его.
Затем соединить его слот show() c сигналом кнопки. А у класса занимающегося вычислениями сделать сигнал посылающий текущую степень выполнения, этот сигнал соединить со слотом setValue(int) QProgressDialog'а QApplication::processEvents(); при работе в одном потоке это обязательно делать
|
|
|
Алексей1153 |
24.6.2010, 9:03
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
|
|
|
Litkevich Yuriy |
24.6.2010, 9:19
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Алексей1153 |
24.6.2010, 9:27
Сообщение
#8
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Litkevich Yuriy, дык, поток другой. Или это как то по другому стали делать ? Ну, если что - меня сильно не пинать, я взращён мелкомягкой студией и избалован MFC
И ещё привык память в кучу возвращать вручную (или враппер писать с возвратом в деструкторе) , как-то непривычно оставлять висячие new... Но в Qt, по видимому, философия несколько иная. Как я понял, если окно разрушается, то для него вызывается delete автоматом и память вертается в кучу Сообщение отредактировал Алексей1153 - 24.6.2010, 9:29 |
|
|
Litkevich Yuriy |
24.6.2010, 9:35
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Алексей1153 |
24.6.2010, 9:38
Сообщение
#10
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Это подразумевается )
|
|
|
Текстовая версия | Сейчас: 27.12.2024, 14:04 |