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);

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

тема закрыта