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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] QProgressDialog и функция setMinimumDuration(), которая не работает  (Прочитано 2768 раз)
VozaMFC
Гость
« : Сентябрь 04, 2013, 12:40 »

Делаю как обычно выборку из БД, поцепил диалог прогресса загрузки, вот так:
Код:
void fillTableView()
{
    QSqlQuery query(m_db);
     query.exec();

     int n = query.numRowsAffected();
 
    QProgressDialog pprd("Придеться немного подождать....","&Отменить",1,n);
    pprd.setMinimumDuration(10000); // <===== то есть по истечении 10 секунд появиться диалог прогресса загрузки...
                                                 // а он у меня сразу появляется, почему?
    pprd.setModal(true);
    pprd.setWindowTitle("Загрузка данных...");


    while( query.next() )
    {
        pprd.setValue(i);
        QApplication::processEvents();

        if( pprd.wasCanceled() )
            break;

/// выборка из базы
        /// query.value(column) и так далее
        i++;        
    }
    pprd.setValue(n);
}
хотел дать ему 3 секунды на загрузку данных из БД, если не успевает - показать прогресс загрузки.
не могу понять что не так.
« Последнее редактирование: Сентябрь 04, 2013, 13:54 от VozaMFC » Записан
VozaMFC
Гость
« Ответ #1 : Сентябрь 04, 2013, 13:52 »

 Пожалуй отвечу себе сам) .
Тем более, что разобрался, оказалось немножечко
ошибся в параметрах конструктора QProgressDialog :
Код:
QProgressDialog pprd("Придеться немного подождать....","&Отменить",1,n);

начинать нужно все таки с нуля, вот так верно:
Код:
QProgressDialog pprd("Придеться немного подождать....","&Отменить",0,n);
и QProgressDialog ждет столько, сколько нам нужно.
Вот пообедал и все сразу стало на свои места =)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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