Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Day от Март 12, 2018, 21:58



Название: Размер ячеек QTableView (РЕШЕНО)
Отправлено: Day от Март 12, 2018, 21:58
Новая проблема. Никак не могу установить размер ячеек QTableView
Tv->setColumnWidth() и Tv->setRowHeight() не работают.
Пытался сделать через модельную headerData (роль Qt::SizeHintRole) - тоже не получается.
Мне нужна фиксированная ширина каждой колонки и одна на всех высота строк. Все! И больше ничего. Для QTableWidget это - один плевок. А с View вот уже 2 дня ничего не могу найти. Хотя методы Tv->setColumnWidth() и Tv->setRowHeight() принадлежат именно QTableView.
horizontalHeader()->setResizeMode(col, QHeaderView::Fixed); - тоже не помогает
setSectionResizeMode просто нет. Qt 4.5.2


Название: Re: Размер ячеек QTableVitv
Отправлено: Old от Март 12, 2018, 22:34
Смотрите в модели. :)


Название: Re: Размер ячеек QTableVitv
Отправлено: Day от Март 12, 2018, 22:42
Old, дорогой! Подскажите, куда смотреть. Я ведь уже пытался в headerData влезть. Ноль эффекта. Уж весь Гугель перелопатил и исходники ковырял! Рву последние волосы на лысине и собираюсь уходить в запой.:)


Название: Re: Размер ячеек QTableVitv
Отправлено: PimenS от Март 14, 2018, 01:14
Если не используется resizeColumnsToContents(), то вполне хватает QTableView::setColumnWidth(int column, int width).

Высоту строк делаю так: verticalHeader()->setDefaultSectionSize(int size)


Название: Re: Размер ячеек QTableVitv
Отправлено: Day от Март 14, 2018, 11:23
PimenS, Огромное спасибо!
verticalHeader()->setDefaultSectionSize(int size) заработало! Пол-проблемы решено!
А вот setColumnWidth никак не хочет. Я, собственно, с него и начинал.
Может быть что-то делаю не в той последовательности... Есть одно подозрение...


Название: Re: Размер ячеек QTableVitv
Отправлено: Day от Март 14, 2018, 12:57
Уффф! Действительно. К моменту setColumnWidth  еще не была привязана модель. И никто не знал количества колонок. Посему метод просто не работал.
Всем спасибо за участие и извинения за мою собственную глупость


Название: Re: Размер ячеек QTableView (РЕШЕНО)
Отправлено: Day от Март 19, 2018, 15:15
Уточню на всякий случай.
Tv->setColumnWidth(col, w);
и
Tv->verticalHeader()->setDefaultSectionSize(h);
Прекрасно работают!
Просто нужно чтобы а) Модель была создана и привязана ДО вызова этих методов. б) И возвращала правильный columnCount()
Версия Qt 4.5.2
Все мои муки были из-за неправильной последовательности. :)