#include "mheaderview.h" MHeaderView::MHeaderView(Qt::Orientation orientation, QWidget *parent) : QHeaderView(orientation, parent) { } void MHeaderView::setIdealColumnSize(int logicalIndex) { QAbstractItemModel *mod = model(); if (mod == nullptr) { return; } int oldSize = sectionSize(logicalIndex); int newSize = oldSize; for (int i = 0; i < mod->rowCount(); i++) { QString text = mod->data(mod->index(i, logicalIndex)).toString(); newSize = std::max(newSize, fontMetrics().horizontalAdvance(text)); } // There is still some margin somewhere... This should probably come from QStyle? newSize += 4; if (newSize != oldSize) { resizeSection(logicalIndex, newSize); emit sectionResized(logicalIndex, oldSize, newSize); } }