Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: AYK от Март 12, 2007, 17:51



Название: Qt 4.2.2 Размер опций в QListView в режиме IconView
Отправлено: AYK от Март 12, 2007, 17:51
Добрый день, коллеги!!!  :D

В порцессе перехода с КюТ 4.0.0 на КюТ 4.2.2 продолжаю разбираться с некоторыми непонятностями:
вот еще одна...
Есть в классе  QAbstractItemView функция void setIconSize ( const QSize & size ), которой я с успехом и пользовался для изменения размера опции списка пока не собрал программу под КюТ 4.2.2.
Собственно под КюТ 4.2.2 такое ощущение, то она ничего не делает.
Какие бы размеры не задавал все равно опции отрисовываются с оптимальной шириной и высотой (по тексту)
Вот пример моего кода

при создании окна и его виджетов кроме прочего вызывается следующая функция

void PWGoodChoice::initViews()
{
//QMessageBox::information(NULL,"",QString("%1").arg("initViews"),QMessageBox::Ok);   

   //list of categories
   columnLCName = 0;
   QListView *list = ui->listViewCategory;
   list->setModel(modelG);
   list->setModelColumn(columnLCName);
   list->setViewMode(QListView::IconMode);
   list->setMovement(QListView::Static);
   list->setSpacing(5);
   list->setCurrentIndex(categoryIndex);
   maxListCItemWidth = 0;
   for (int row = 0; row < modelG->rowCount(); ++row)
   {
      if (maxListCItemWidth < list->sizeHintForIndex(modelG->index(row,columnLCName)).width())
      {
         maxListCItemWidth = list->sizeHintForIndex(modelG->index(row,columnLCName)).width();
      }
   }
//....
}

при отрисовке окна всегда происходит перерасчет отрисовки в списке
void PWGoodChoice::updateProportions()
{
   //set size of Category List view item
   {
      QListView *list = ui->listViewCategory;
      int widgetWidth = list->viewport()->rect().width();
      int w = maxListCItemWidth + list->spacing();
      if (w>widgetWidth)
      {
         w=widgetWidth;
      }
      list->setIconSize(QSize(w - list->spacing(),maxListItemHeight));
      list->setGridSize(QSize(w,maxListItemHeight + list->spacing()));
   }

//...
}

размеры грида устанавливаются а вот размеры опции в этом гриде неизменны...  :cry: а мне надо, чтобы опция по размеру была такой же как и ячейка грида уменьшенная немного.

Может какие-то новшества в КюТ 4.2.2. о которых я не знаю?
Или еще почитать что-то надо?  :?

Посоветуйте или подскажите что не так делаю?
Спасибо.  :)