44 #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
45 setSectionsClickable(
true);
46 setSectionResizeMode(Fixed);
51 setDefaultSectionSize(27);
56 if (orientation() == Qt::Vertical)
58 QHeaderView::paintSection(painter, rect, logicalIndex);
64 painter->translate(rect.x(), rect.y());
66 painter->translate(-rect.height(), 0);
67 QHeaderView::paintSection(painter, QRect(0, 0, rect.height(), rect.width()), logicalIndex);
73 if (orientation() == Qt::Vertical)
74 return QHeaderView::sectionSizeFromContents(logicalIndex);
76 Q_ASSERT(logicalIndex >= 0);
81 QVariant variant = model()->headerData(logicalIndex, Qt::Vertical, Qt::SizeHintRole);
82 if (variant.isValid())
83 return qvariant_cast<QSize>(variant);
86 QStyleOptionHeader opt;
87 initStyleOption(&opt);
88 opt.section = logicalIndex;
89 QVariant var = model()->headerData(logicalIndex, orientation(), Qt::FontRole);
91 if (var.isValid() && var.canConvert<QFont>())
92 fnt = qvariant_cast<QFont>(var);
96 opt.fontMetrics = QFontMetrics(fnt);
97 opt.text = model()->headerData(logicalIndex, orientation(), Qt::DisplayRole).toString();
98 variant = model()->headerData(logicalIndex, orientation(), Qt::DecorationRole);
99 opt.icon = qvariant_cast<QIcon>(variant);
100 if (opt.icon.isNull())
101 opt.icon = qvariant_cast<QPixmap>(variant);
102 QSize size = style()->sizeFromContents(QStyle::CT_HeaderSection, &opt, QSize(),
this);
103 if (isSortIndicatorShown())
105 int margin = style()->pixelMetric(QStyle::PM_HeaderMargin, &opt,
this);
106 if (orientation() == Qt::Horizontal)
107 size.rwidth() += size.height() + margin;
109 size.rheight() += size.width() + margin;
111 return QSize(size.height(), size.width());
116 if (isSectionHidden(logicalIndex))
118 if (logicalIndex < 0 || logicalIndex >= count())
121 QVariant
value = model()->headerData(logicalIndex, orientation(), Qt::SizeHintRole);
123 size = qvariant_cast<QSize>(value);
126 int hint = size.height();
127 return qMax(minimumSectionSize(), hint);