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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QProgressBar работает медленно, или мне показалось  (Прочитано 4003 раз)
Anton
Гость
« : Декабрь 11, 2005, 22:28 »

Даже если пустой цикл прогонять в несколько тысяч итераций и выставлять обновление, то это занимает достаточно продолжительное время
Записан
Gop-Stop
Гость
« Ответ #1 : Декабрь 11, 2005, 23:23 »

Так и есть. Используй прогресс с 100 (если интераций 1000 то в прогресс добавляй 1 после каждой 10-й итреции)
Записан
Dendy
Гость
« Ответ #2 : Декабрь 12, 2005, 14:12 »

Код:
void QProgressBar::setValue(int value)
{
    Q_D(QProgressBar);
    if (d->value == value || ((value > d->maximum || value < d->minimum)
                && (d->maximum != 0 || d->minimum != 0)))
        return;
    d->value = value;
    emit valueChanged(value);
#ifndef QT_NO_ACCESSIBILITY
    QAccessible::updateAccessibility(this, 0, QAccessible::ValueChanged);
#endif
    if (d->repaintRequired())
        repaint();
}


Дуже тяжка функція для виклику з нескінченного циклу Грустный  Краще робити setValue() через кілька ітерацій. Потрібно викликати між дійсно тяжкими операціями, набагато тяжче за setValue().
repaint() я взагалі не зрозумів Грустный  Може повинно бути update()?
Записан
Артем
Гость
« Ответ #3 : Декабрь 14, 2005, 00:53 »

Цитата: "Anton"
Даже если пустой цикл прогонять в несколько тысяч итераций и выставлять обновление, то это занимает достаточно продолжительное время

Наткнулся на ту же проблему в QT4. setValue() тормозит жутко. Пока не решил( В некоторых случаях setValue() вобще не работает.
Если решение уже найдено (кроме уже предложенного) напиши пожалуйста.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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