从这个屏幕截图中,您可以看到行内的大量空间:
我已经使用这些功能来调整大小:
resizeRowsToContents();
resizeColumnsToContents();
如何更好地适应细胞/行大小?
答案 0 :(得分:11)
试试这些:
verticalHeader()->setDefaultSectionSize(int size)
horizontalHeader()->setDefaultSectionSize(int size)
答案 1 :(得分:4)
试试这个:
void QHeaderView::setResizeMode(QHeaderView::ResizeToContents);
答案 2 :(得分:1)
我正在使用Qt 4.7,这对我QTableView
有效:
tableView->resizeColumnsToContents();
tableView->resizeRowsToContents();
tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
答案 3 :(得分: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);
答案 4 :(得分:0)
当您在具有隐藏的verticalHeader的空表的tableView上调用resizeRowsToContents时,Qt中似乎存在一个错误,它不能准确地调整行的大小。考虑到表经常是空的,这确实是一个麻烦的问题。幸运的是,我在qtcentre thread上找到了一种解决方法,如下所示:
如果表/模型为不为空,请使用:
from natsort import natsorted
df = df.set_index('Index').reindex(natsorted(df.Index)).reset_index()
Out[42]:
Index Code Parent
0 1 2 NaN
1 1.1 1 2.0
2 1.2.1 3 4.0
3 1.2.2.1 5 3.0
4 1.2.16.1 4 2.0
5 1.3 45 2.0
6 1.3.1 10 45.0
否则,这是一种解决方法:
tableView->resizeRowsToContents();
const int rowHeight = tableView->verticalHeader()->sectionSize(0);
tableView->verticalHeader()->setDefaultSectionSize(rowHeight);
答案 5 :(得分:-2)
QTimer::singleShot(1, ui->tableView, SLOT(resizeRowsToContents()));