crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QListWidget медленная прокрутка
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
2th3sky Дата 20.11.2009, 15:07
  Использую QListWidget для отображения списка кастом виджетов используя setItemWidget() метод. CustomWidget представляет из себя QWidget с набором контролов (два QLabel с картинками, несколько QLabel с текстом).
Реализовал прокрутку с использованием методов
void CustomListWidget :: mouseMoveEvent (QMouseEvent * event)
{
    int y_pos = event->y();
    int diff = last_y_pos - y_pos;
    if(diff == 0)
        return;
    
    if((last_diff != -1) && ((diff < 0) != (last_diff < 0)))
    {
        last_y_pos = y_pos;
    }
    
    last_diff = diff;
    verticalScrollBar()->setValue(verticalScrollBar()->value() + diff); // move scrollbar here
    last_y_pos = y_pos;
    QListWidget::mouseMoveEvent(event);
}

void CustomListWidget :: mousePressEvent (QMouseEvent * event)
{
    int y_pos = event->y();
    last_diff = -1;
    last_y_pos = y_pos;
    QListWidget::mousePressEvent(event);
    
}


Но прокрутка при этом подтормаживает. Как ускорить прокрутку? Скорее всего проблема в постоянной перерисовке всех контролов. Какие есть способы решения данной проблемы?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 25.4.2024, 6:58