2010-09-10 262 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()));