9

从这个屏幕截图中,您可以看到行内有很多空间:

替代文字

我已经使用这些函数来调整大小:

resizeRowsToContents();
resizeColumnsToContents();

我怎样才能更好地适应单元格/行大小?

4

6 回答 6

11

试试这些:

verticalHeader()->setDefaultSectionSize(int size)
horizontalHeader()->setDefaultSectionSize(int size)
于 2010-09-11T03:44:41.187 回答
5

尝试这个:

void QHeaderView::setResizeMode(QHeaderView::ResizeToContents);
于 2010-09-11T09:56:43.433 回答
2

当您在带有隐藏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);
于 2019-09-13T01:39:09.323 回答
1

我正在使用 Qt 4.7,这对我有用QTableView

tableView->resizeColumnsToContents();
tableView->resizeRowsToContents();
tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
于 2011-12-12T05:48:58.143 回答
0

我也有同样的问题,其他很多人似乎也有同样的问题:

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);
于 2011-01-14T20:33:19.443 回答
-1
QTimer::singleShot(1, ui->tableView, SLOT(resizeRowsToContents()));
于 2017-11-25T07:57:42.330 回答