从这个截图中可以看到行内有很多空间:
我使用了这些函数来进行调整大小:
resizeRowsToContents();
resizeColumnsToContents();
我该如何更好地调整单元格/行的大小?
从这个截图中可以看到行内有很多空间:
我使用了这些函数来进行调整大小:
resizeRowsToContents();
resizeColumnsToContents();
我该如何更好地调整单元格/行的大小?
试试这些:
verticalHeader()->setDefaultSectionSize(int size)
horizontalHeader()->setDefaultSectionSize(int size)
试试这个:
void QHeaderView::setResizeMode(QHeaderView::ResizeToContents);
tableView->resizeRowsToContents();
const int rowHeight = tableView->verticalHeader()->sectionSize(0);
tableView->verticalHeader()->setDefaultSectionSize(rowHeight);
// workaround for Qt empty table auto-row-sizing problem
const int rowHeight = tableView->verticalHeader()->minimumSectionSize();
tableView->verticalHeader()->setDefaultSectionSize(rowHeight);
我正在使用Qt 4.7,这对于我的QTableView
有效:
tableView->resizeColumnsToContents();
tableView->resizeRowsToContents();
tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
我有同样的问题,似乎还有许多其他人也是如此:
http://www.qtforum.org/article/13421/qtableview-how-to-make-rows-size-smaller.html
我为一个只有几行的简单表格写了一个快速的hack程序(假设所有行都具有相同的文本高度,这可能仅适用于某些字体,也许仅适用于Windows):
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);
QTimer::singleShot(1, ui->tableView, SLOT(resizeRowsToContents()));