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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Высота строк в QTable  (Прочитано 4825 раз)
Zmey
Гость
« : Январь 31, 2005, 10:32 »

Как сделать все строки в QTable определенной высоты? Чтобы по-умолчанию высота строк была не 20-25, как есть, а, например, 15.
В цикле setRowHeight для каждой строки - крайне медленно.
Записан
Hordi
Гость
« Ответ #1 : Июнь 07, 2006, 13:15 »

И я столкнулся...
Qt-3.3.6. Визуально при изменении высоты крайне нехорошо видна перерисовка. Как быть, setRowHeight явно неудачное решение...
Записан
Sergeich
Гость
« Ответ #2 : Июнь 07, 2006, 14:13 »

Можно поробовать так:
Код:
setUpdatesEnabled(false);
for ( int i = 0; i < numRows(); i++ )
  setRowHeight( h );
setUpdatesEnabled(true);
update();
Записан
Hordi
Гость
« Ответ #3 : Июнь 07, 2006, 14:45 »

В общем работает, осталась только проблема очистки старых записей, если строк меньше чем было...

добавлено спустя 3 минуты:

 Да, как перерисовать все видимые ячейки? Пока делаю так, но горбато...

   unsigned int cnt = NEW_ROW_CNT;
   if(numRows() > cnt)
      setNumRows(0);

   setUpdatesEnabled(false);
   
   setNumRows( cnt );
   while(cnt--)
      setRowHeight(cnt,ROW_HEIGHT);
   
   setUpdatesEnabled(true);

добавлено спустя 4 минуты:

    int r = height() / ROW_HEIGHT + 2;
   if(r>cnt)
      r = cnt;
   
   int c = numCols();
   while(r--){
      for(int k=0;k<c;++k)
         updateCell(r,k);
   }
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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