How to tighten up (reduce) the row height in a table
Solved
General and Desktop
-
wrote on 29 Jul 2019, 19:00 last edited by
The default row height is too high, it leaves too much space between lines.
setRowHeight
is not working if the value is less than the default. How do I reduce the line spacing?#include "TableRowHeight.h" #include <qtablewidget.h> #include <QHeaderView> #include <QGridLayout> TableRowHeight::TableRowHeight(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); QTableWidget *table = new QTableWidget; QFont font("Tahoma", 11); table->setFont(font); table->setColumnCount(1); // doesn't make any difference QHeaderView *rowSize = table->verticalHeader(); rowSize->setSectionResizeMode(QHeaderView::Interactive); // Fixed rowSize->setDefaultSectionSize(5); for(int i = 0; i < 10; i++) { table->insertRow(i); int rh = table->rowHeight(i); int targetH = rh * 0.5; table->setRowHeight(i, targetH); // no effect if reducing line height int hAfter = table->rowHeight(i); QTableWidgetItem *item; char wk[128]; _snprintf(wk, sizeof(wk), "%d height before{%d} setHeight{%d} height after{%d}", i, rh, targetH, hAfter); item = new QTableWidgetItem(wk); table->setItem(i, 0, item); } this->setCentralWidget(table); }
-
Hi
Did you try setting the minimum ?
setMinimumSectionSize(int size) and then use setRowHeight -
wrote on 30 Jul 2019, 11:26 last edited by mpergand
-
wrote on 30 Jul 2019, 20:20 last edited by
@mpergand 'setMinimumSectionSize' is necessary.
-
Hi
Did you try setting the minimum ?
setMinimumSectionSize(int size) and then use setRowHeightwrote on 30 Jul 2019, 20:22 last edited by@mrjj Excellent!
setMinimumSectionSize
did the trick.setRowHeight
does not seem necessary.
5/5