从这个屏幕截图中,您可以看到行内有很多空间:
我已经使用这些函数来调整大小:
resizeRowsToContents();
resizeColumnsToContents();
我怎样才能更好地适应单元格/行大小?
从这个屏幕截图中,您可以看到行内有很多空间:
我已经使用这些函数来调整大小:
resizeRowsToContents();
resizeColumnsToContents();
我怎样才能更好地适应单元格/行大小?
试试这些:
verticalHeader()->setDefaultSectionSize(int size)
horizontalHeader()->setDefaultSectionSize(int size)
尝试这个:
void QHeaderView::setResizeMode(QHeaderView::ResizeToContents);
当您在带有隐藏verticalHeader的空表的tableView上调用resizeRowsToContents时,Qt中似乎存在一个错误,它不能准确地调整行的大小。并且考虑到表格通常开始是空的,这确实是一个麻烦的问题。幸运的是,我在qtcentre 线程上找到了解决方法,如下所示:
如果表/模型不为空,请使用:
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
我对只有几行的简单表格的快速破解工作(假设所有行的文本高度相同,这可能仅适用于某些字体,可能仅适用于 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);
QTimer::singleShot(1, ui->tableView, SLOT(resizeRowsToContents()));