2010-06-24 10 views
6

Estoy usando una vista de tabla.
Me gustaría eliminar el relleno de la celda (o el margen) para poder exprimir más celdas en menos espacio. ¿Cómo se puede lograr esto?
El tamaño de las celdas se establece en 32 píxeles en el diseñador de QT, si lo configuro más pequeño, el contenido de las celdas no se muestra y aparece una elipsis. (...)Reducir el margen o margen de celda de una vista de tabla

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

+0

Utilicé resizeRowsToContents() de QTableView y también redujo las alturas de las celdas. – Trilarion

Respuesta

7

recomendamos que utilice este código:

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: También me he dado cuenta, que si en tableView demasiado filas o columnas, por ejemplo, aproximadamente 20K filas o más, esta función resizeSection() puede ser demasiado lenta ...

+0

¡Gracias! Lo intentaré. Esta tabla está fija en 16 x 128 celdas, así que supongo que no tendrá problemas de velocidad. – Petruza

+0

Funcionó muy bien, gracias! – frmdstryr