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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Размер ячеек QTableView (РЕШЕНО)  (Прочитано 1023 раз)
Day
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« : Март 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
« Последнее редактирование: Март 14, 2018, 12:59 от Day » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3945



Просмотр профиля
« Ответ #1 : Март 12, 2018, 22:34 »

Смотрите в модели. Улыбающийся
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #2 : Март 12, 2018, 22:42 »

Old, дорогой! Подскажите, куда смотреть. Я ведь уже пытался в headerData влезть. Ноль эффекта. Уж весь Гугель перелопатил и исходники ковырял! Рву последние волосы на лысине и собираюсь уходить в запой.Улыбающийся
Записан
PimenS
Крякер
****
Offline Offline

Сообщений: 329


Просмотр профиля
« Ответ #3 : Март 14, 2018, 01:14 »

Если не используется resizeColumnsToContents(), то вполне хватает QTableView::setColumnWidth(int column, int width).

Высоту строк делаю так: verticalHeader()->setDefaultSectionSize(int size)
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #4 : Март 14, 2018, 11:23 »

PimenS, Огромное спасибо!
verticalHeader()->setDefaultSectionSize(int size) заработало! Пол-проблемы решено!
А вот setColumnWidth никак не хочет. Я, собственно, с него и начинал.
Может быть что-то делаю не в той последовательности... Есть одно подозрение...
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #5 : Март 14, 2018, 12:57 »

Уффф! Действительно. К моменту setColumnWidth  еще не была привязана модель. И никто не знал количества колонок. Посему метод просто не работал.
Всем спасибо за участие и извинения за мою собственную глупость
Записан
Day
Частый гость
***
Offline Offline

Сообщений: 229


Просмотр профиля
« Ответ #6 : Март 19, 2018, 15:15 »

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

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

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