Pregunta

A partir de esta pantalla se puede ver una gran cantidad de espacio dentro de las filas:

text alt

He utilizado estas funciones para obtener el cambio de tamaño:

resizeRowsToContents();
resizeColumnsToContents();

¿Cómo puedo obtener un mejor ajuste para células / tamaños filas?

¿Fue útil?

Solución

Trate siguientes:

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

Otros consejos

Prueba esto:

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

Estoy usando Qt 4.7 y esta trabajado para mí en QTableView:

tableView->resizeColumnsToContents();
tableView->resizeRowsToContents();
tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);

Tengo el mismo problema, también lo hacen muchos otros parece:

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

Mi trabajo truco rápido para una sencilla tabla con un par de filas solamente (asumir todas las filas tienen la misma altura de texto y esto probablemente sólo funciona para algunas fuentes quizá solamente en 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);

Parece que hay un error en Qt cuando llame resizeRowsToContents en el tableView de una mesa vacía con un verticalHeader oculta, que no cambia de tamaño con precisión las filas. Y teniendo en cuenta que las tablas comienzan a menudo vacío, esto es de hecho un problema molesto. Afortunadamente he encontrado una solución en un qtcentre hilo , como sigue:

Si la tabla / modelo es no vacía, utilice:

        tableView->resizeRowsToContents();
        const int rowHeight = tableView->verticalHeader()->sectionSize(0);
        tableView->verticalHeader()->setDefaultSectionSize(rowHeight);

Si no, aquí hay una solución:

        // workaround for Qt empty table auto-row-sizing problem
        const int rowHeight = tableView->verticalHeader()->minimumSectionSize();
        tableView->verticalHeader()->setDefaultSectionSize(rowHeight);
QTimer::singleShot(1, ui->tableView, SLOT(resizeRowsToContents()));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top