2010-09-10 9 views

Répondre

10

Essayez:

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

Essayez ceci:

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

Cela fonctionne bien pour les colonnes, mais ne semble pas fonctionner avec des lignes. –

0

J'ai le même problème, donc faire beaucoup d'autres, il semble:

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

Mon travail hack pour une table simple avec quelques lignes seulement (supposons que toutes les lignes ont la même hauteur de texte et ce pro bablement ne fonctionne que pour certaines polices peut-être seulement sur 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

J'utilise Qt 4.7 et cela a fonctionné pour moi QTableView:

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