![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
AD |
![]()
Сообщение
#1
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Хочу сделать следующее. Идет какая-то загрузка, при этом работает полоса загрузки файлов. Эта полоса загрузки должна исчезнуть, когда закончено считывание! Но у меня есть желание сделать кое-какую задержку (в 1-2 сек.), прежде чем она исчезнет. Как это сделать? Какой функцией можно воспользоваться?
|
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9666 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Ну а как ты собираешся эту полосу убрать, наверное функцию какуюто будешь делать? Может в место нее вставить функцию, которая таймер будет взводить?
|
|
|
ViGOur |
![]()
Сообщение
#3
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3293 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Для этих целей можно использовать: void QThread::msleep ( unsigned long msecs )
Или как сказал Litkevich Yuriy используй QTimer Class Reference |
|
|
AD |
![]()
Сообщение
#4
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Ну а как ты собираешся эту полосу убрать, наверное функцию какуюто будешь делать? Может в место нее вставить функцию, которая таймер будет взводить? Убрать полосу легко - void QMainWindow::removeDockWidget ( QDockWidget * dockwidget ) , так как она располагается на прикрепленном виджете! Я не понял, как можно использовать указанные функции, если mspleep - защищенная статическая функция? А у меня класс - производный от QMainWindow! |
|
|
Litkevich Yuriy |
![]()
Сообщение
#5
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9666 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
ну ты же от куда-то будешь вызывать removeDockWidget(), он же не сам вызывается.
вот там где будешь вызывать, там и зделать задержку. я бы через однократный таймер стал делать (хотя и не делал еще) может способ который предложил ViGOur лучше, я еще про это не читал даже. |
|
|
ViGOur |
![]()
Сообщение
#6
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3293 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
AD |
![]()
Сообщение
#7
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Цитата ну ты же от куда-то будешь вызывать removeDockWidget(), он же не сам вызывается. вот там где будешь вызывать, там и зделать задержку. я бы через однократный таймер стал делать (хотя и не делал еще) может способ который предложил ViGOur лучше, я еще про это не читал даже. Так-с ![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9666 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
использовать его для однократной задержки? см. Timer::singleShot(600000, &app, SLOT(quit())); но эту статическую фукцию если применять несколько раз в программе, можно напаротся на грабли, поэтому посмотри может лучше сделать какой-нибудь таймер однократным. Ведь у каждого потомка от QObject есть тамеры и метод setSingleShot() и еще есть QBasicTimer |
|
|
AD |
![]()
Сообщение
#9
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Данный вопрос решен с помощью указанного таймера следующим образом:
Всем спасибо! p.s. Тему можно закрыть. |
|
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 20.1.2021, 4:00 |