2010-09-10 122 views

回答

10

尝试这些:

verticalHeader()->setDefaultSectionSize(int size) 
horizontalHeader()->setDefaultSectionSize(int size) 
3

试试这个:

void QHeaderView::setResizeMode(QHeaderView::ResizeToContents); 
+0

,对于列效果很好,但似乎不适用于行。 – 2011-03-02 16:55:16

0

我有同样的问题,所以做很多别人看来:

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

我快速的黑客工作对于只有几行的简单表(假设所有行都具有相同的文本高度和此专业版bably仅适用于也许只有上的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); 
1

我使用Qt 4.7,这为我工作在QTableView

tableView->resizeColumnsToContents(); 
tableView->resizeRowsToContents(); 
tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch); 
-2
QTimer::singleShot(1, ui->tableView, SLOT(resizeRowsToContents()));