Russian Qt Forum
Апреля 19, 2025, 13:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ячейка TableView, как уменьшить ячейку таблицы QTableView  (Прочитано 4617 раз)
4sgen
Новичок

Offline Offline

Сообщений: 27


Просмотр профиля
« : Июня 09, 2020, 11:57 »

Здравствуйте всем! Не могу разобраться, как уменьшить ячейку в QTableView.
картинка

Это минимальный размер таблицы с данными. Как можно заметить строки сжимаются гораздо больше, чем столбцы.
Причем уменьшая размер кегля шрифта, размер ячеек не уменьшается (шрифт header тоже уменьшаю).
Получается уменьшить свободное пространство только подбором уплотненных шрифов.
Как можно минимизировать размеры ячеек, до двух символов?

Растягиваю ячейки следующим образом:
Код:
void ddm::resizeEvent(QResizeEvent *event)
{
  for (int i = 0; i < 16; ++i)
    {
      ui->TableA2->horizontalHeader()->setSectionResizeMode(i, QHeaderView::Stretch);
      ui->TableA2->verticalHeader()->setSectionResizeMode(i, QHeaderView::Stretch);
    }
}
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Июня 09, 2020, 12:11 »

Если я тебя правильно понял, то тебе нужно:
Код
C++ (Qt)
ui->tableA2->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
и то же самое для вертикальных. А свой код убери.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
4sgen
Новичок

Offline Offline

Сообщений: 27


Просмотр профиля
« Ответ #2 : Июня 09, 2020, 12:23 »

Вот что я хочу получить:

Это с уплотненным шрифтом.

Ресайз работает и построчно, и так, как Вы указали. С этим проблем нет.
Я уменьшаю размер окна до тех пор, пока не увижу скроллбары чтобы увидеть минимальный размер таблицы.
Сама ячейка не сжимается больше, даже если ее сжимать по размеру текста двойным щелчком (без использования resizemode).
Пробовал стили CSS менять, безрезультатно.

Код:
QTableView::item
{
  border: 0px;
  padding: 0px;
}
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5877


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Июня 09, 2020, 12:59 »

А попробуй написать свой делегат. У стандартного отображения есть отступы, они и мешают. Ты в делегате можешь переопределить минимальный размер ячейки, на сколько я помню.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
4sgen
Новичок

Offline Offline

Сообщений: 27


Просмотр профиля
« Ответ #4 : Июня 09, 2020, 13:11 »

Спасибо, попробую! Но если кто-нибудь знает как убрать отступы, буду рад.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Июня 09, 2020, 13:12 »

Если точно известно что "только 2 символа" то посчитайте ширину сами (используя QFontMetrics) и потом QHeaderView::Fixed
Записан
4sgen
Новичок

Offline Offline

Сообщений: 27


Просмотр профиля
« Ответ #6 : Июня 09, 2020, 13:23 »

Если точно известно что "только 2 символа" то посчитайте ширину сами (используя QFontMetrics) и потом QHeaderView::Fixed
Да проблема в том, что есть минимальная ширина столбца, даже если будет один символ. На первой картинке я привел пример минимального размера ячейки.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #7 : Июня 09, 2020, 13:36 »

QHeaderView::minimumSectionSize ?
Записан
4sgen
Новичок

Offline Offline

Сообщений: 27


Просмотр профиля
« Ответ #8 : Июня 09, 2020, 13:49 »

QHeaderView::minimumSectionSize ?

Вот что получилось:


Код:
ui->TableA0->verticalHeader()->setMinimumSectionSize(5);
ui->TableA0->horizontalHeader()->setMinimumSectionSize(5);

Большое спасибо за помощь!

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


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