Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: blood_shadow от Февраль 05, 2011, 15:30



Название: Размер заголовка
Отправлено: blood_shadow от Февраль 05, 2011, 15:30
Добрый день,
Можно ли в модели в методе
QVariant headerData(), сразу же ресайзить заголовок на необходимый размер например делал вот так:

Код
C++ (Qt)
QVariant AccidentModelTable::headerData(int section, Qt::Orientation orientation, int role) const
{
   if (role == Qt::DisplayRole)
   {
       if (orientation == Qt::Horizontal)
       {
 
           return tableTitle.at(section);
       }
       else
           return section + 1;
   }
 
   else if (role == Qt::SizeHintRole)
   {
       return QSize(200, 100);
 
   }
 
   return QVariant();
}
 

поставил фильтр на Qt::SizeHintRole, но почему то размер 200 для ширины горизонтального хэдера игнорируються, высота на 100 устанавливается, если определить так :

Код
C++ (Qt)
else if (role == Qt::SizeHintRole)
   {
       if (orientation == Qt::Horizontal)
           return QSize(200, 100);
       else
           return QSize(300, 100);
 
   }
 

тогда выставляется высота для вертикального хедера 100 высота и ширина 300 для горизонтального хедера
в доке написано что роль Qt::SizeHintRole должна возвращать QSize, но получается что один из размеров игнорируеться, почему так
и зачем тогда второй размер? и можно ли как-то задать ширину горизонтального хедера?
про метод horizontalHeader()->setDefaultSectionSize знаю, интересует способ именно через модель