Russian Qt Forum

Программирование => Общий => Тема начата: VozaMFC от Сентября 04, 2013, 12:40



Название: [РЕШЕНО] QProgressDialog и функция setMinimumDuration(), которая не работает
Отправлено: 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 секунды на загрузку данных из БД, если не успевает - показать прогресс загрузки.
не могу понять что не так.


Название: Re: QProgressDialog и функция setMinimumDuration(), которая не работает
Отправлено: VozaMFC от Сентября 04, 2013, 13:52
 Пожалуй отвечу себе сам) .
Тем более, что разобрался, оказалось немножечко
ошибся в параметрах конструктора QProgressDialog :
Код:
QProgressDialog pprd("Придеться немного подождать....","&Отменить",1,n);

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