Как получить правильную высоту строки в Qt для объекта QTableView? - PullRequest
7 голосов
/ 10 сентября 2010

На этом снимке экрана вы можете видеть много места внутри строк:

alt text

Я использовал эти функции для изменения размера:

resizeRowsToContents();
resizeColumnsToContents();

Как мне лучше подходить для ячеек / размеров строк?

Ответы [ 5 ]

11 голосов
/ 11 сентября 2010

Попробуйте:

verticalHeader()->setDefaultSectionSize(int size)
horizontalHeader()->setDefaultSectionSize(int size)
4 голосов
/ 11 сентября 2010

Попробуйте это:

void QHeaderView::setResizeMode(QHeaderView::ResizeToContents);
1 голос
/ 12 декабря 2011

Я использую Qt 4.7, и это сработало для меня на QTableView:

tableView->resizeColumnsToContents();
tableView->resizeRowsToContents();
tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
0 голосов
/ 25 ноября 2017
QTimer::singleShot(1, ui->tableView, SLOT(resizeRowsToContents()));
0 голосов
/ 14 января 2011

У меня такая же проблема, как и у многих других:

http://www.qtforum.org/article/13421/qtableview-how-to-make-rows-size-smaller.html

Моя работа по быстрому взлому простой таблицы с несколькими строками (предположим, что все строки одинаковы)высота текста, и это, вероятно, работает только для некоторых шрифтов, может быть, только на Windo):

int rowHeight = ui.tableView_Available->rowHeight(0) *1/2;
for (unsigned int i = 0; i < model->rowCount(); i++)
  ui.tableView_Available->verticalHeader()->resizeSection(i, rowHeight);
...