Como llegar altura de la fila derecha en Qt para el objeto QTableView?
-
02-10-2019 - |
Pregunta
A partir de esta pantalla se puede ver una gran cantidad de espacio dentro de las filas:
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?
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()));