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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ячейка TableView, как уменьшить ячейку таблицы QTableView  (Прочитано 3853 раз)
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

Сообщений: 5876


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


Просмотр профиля 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

Сообщений: 5876


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


Просмотр профиля 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

Сообщений: 3258


Просмотр профиля
« Ответ #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.07 секунд. Запросов: 22.