Вероятно, самый простой подход, чтобы скрыть сетку и перекрашивать его размера вам нужно. Для этого вам нужно создать собственный класс, который наследует QTableWidget и определяет пользовательский paintEvent. Пример код:
void paintEvent(QPaintEvent *event)
{
QTableWidget::paintEvent(event);
QPainter painter(viewport());
for (int i = 0; i < columnCount(); ++i)
{
int start = horizontalHeader()->sectionViewportPosition(i);
QPoint from = QPoint(start, 0);
QPoint to = QPoint(start, height());
painter.drawLine(from, to);
start += horizontalHeader()->sectionSize(i) - 10;
from = QPoint(start, 0);
to = QPoint(start, height());
painter.drawLine(from, to);
}
for (int j = 0; j < rowCount(); ++j)
{
int start = verticalHeader()->sectionViewportPosition(j);
QPoint from = QPoint(0, start);
QPoint to = QPoint(width(), start);
painter.drawLine(from, to);
start += verticalHeader()->sectionSize(j) - 10;
from = QPoint(0, start);
to = QPoint(width(), start);
painter.drawLine(from, to);
}
}
Вы также можете установить это автоматически, используя свойства QHeaderView. QHeaderView * header = tableView-> verticalHeader(); header-> setResizeMode (QHeaderView :: ResizeToContents); – RobbieE