2010-06-24 6 views
6

J'utilise une vue Table.
Je voudrais enlever le rembourrage de la cellule (ou marge) afin que je puisse serrer plus de cellules dans moins d'espace. Comment cela peut il etre accompli?
La taille des cellules est définie à 32 pixels sur le concepteur QT, si je l'ai défini plus petit, le contenu des cellules ne s'affiche pas et une ellipse apparaît. (...)Réduire le remplissage ou la marge d'une vue de table

alt text http://img692.imageshack.us/img692/3484/tableviewpng.png

+0

J'ai utilisé resizeRowsToContents() de QTableView et il a également réduit les hauteurs de cellule. – Trilarion

Répondre

7

vous recommandons d'utiliser ce code:

QTableView *tableView = new QTableView(this); 

tableView->setModel(model_); 

QHeaderView *verticalHeader = tableView->verticalHeader(); 
verticalHeader->setDefaultSectionSize(verticalHeader->fontMetrics().height()+2); 

// or ... 

QHeaderView *horizontalHeader = tableView->horizontalHeader(); 
horizontalHeader->setStretchLastSection(false); 
horizontalHeader->resizeSection(/* your personal height */); 

PS: J'ai aussi remarqué, que si dans tableView lignes trop ou colonnes, par exemple environ 20K lignes ou plus, cette fonction resizeSection() peut être trop lent ...

+0

Merci! Je vais l'essayer. Cette table est fixée à 16 x 128 cellules, donc je suppose qu'il n'y aura pas de problèmes de vitesse. – Petruza

+0

A travaillé super, merci! – frmdstryr

Questions connexes