Russian Qt Forum

Qt => Вопросы новичков => Тема начата: 4sgen от Июня 09, 2020, 11:57



Название: Ячейка TableView, как уменьшить ячейку таблицы QTableView
Отправлено: 4sgen от Июня 09, 2020, 11:57
Здравствуйте всем! Не могу разобраться, как уменьшить ячейку в QTableView.
картинка
(https://i.ibb.co/k6znLtz/image.png) (https://ibb.co/Xk6Bnq6)
Это минимальный размер таблицы с данными. Как можно заметить строки сжимаются гораздо больше, чем столбцы.
Причем уменьшая размер кегля шрифта, размер ячеек не уменьшается (шрифт 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);
    }
}


Название: Re: Ячейка TableView, как уменьшить ячейку таблицы QTableView
Отправлено: Пантер от Июня 09, 2020, 12:11
Если я тебя правильно понял, то тебе нужно:
Код
C++ (Qt)
ui->tableA2->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
и то же самое для вертикальных. А свой код убери.


Название: Re: Ячейка TableView, как уменьшить ячейку таблицы QTableView
Отправлено: 4sgen от Июня 09, 2020, 12:23
Вот что я хочу получить:
(https://i.ibb.co/t4hCbsG/2.png) (https://imgbb.com/)
Это с уплотненным шрифтом.

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

Код:
QTableView::item
{
  border: 0px;
  padding: 0px;
}


Название: Re: Ячейка TableView, как уменьшить ячейку таблицы QTableView
Отправлено: Пантер от Июня 09, 2020, 12:59
А попробуй написать свой делегат. У стандартного отображения есть отступы, они и мешают. Ты в делегате можешь переопределить минимальный размер ячейки, на сколько я помню.


Название: Re: Ячейка TableView, как уменьшить ячейку таблицы QTableView
Отправлено: 4sgen от Июня 09, 2020, 13:11
Спасибо, попробую! Но если кто-нибудь знает как убрать отступы, буду рад.


Название: Re: Ячейка TableView, как уменьшить ячейку таблицы QTableView
Отправлено: Igors от Июня 09, 2020, 13:12
Если точно известно что "только 2 символа" то посчитайте ширину сами (используя QFontMetrics) и потом QHeaderView::Fixed


Название: Re: Ячейка TableView, как уменьшить ячейку таблицы QTableView
Отправлено: 4sgen от Июня 09, 2020, 13:23
Если точно известно что "только 2 символа" то посчитайте ширину сами (используя QFontMetrics) и потом QHeaderView::Fixed
Да проблема в том, что есть минимальная ширина столбца, даже если будет один символ. На первой картинке я привел пример минимального размера ячейки.


Название: Re: Ячейка TableView, как уменьшить ячейку таблицы QTableView
Отправлено: Авварон от Июня 09, 2020, 13:36
QHeaderView::minimumSectionSize ?


Название: Re: Ячейка TableView, как уменьшить ячейку таблицы QTableView
Отправлено: 4sgen от Июня 09, 2020, 13:49
QHeaderView::minimumSectionSize ?

Вот что получилось:
(https://i.ibb.co/YP2jMnn/4.png) (https://imgbb.com/)

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

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

тема закрыта