An extended QHeaderView with optionally proportional section sizes. More...
#include <qxtheaderview.h>
Public Member Functions | |
QxtHeaderView (Qt::Orientation orientation, QWidget *parent=0) | |
bool | hasProportionalSectionSizes () const |
void | setProportionalSectionSizes (bool enabled) |
int | sectionStretchFactor (int logicalIndex) const |
void | setSectionStretchFactor (int logicalIndex, int factor) |
Protected Member Functions | |
void | resizeEvent (QResizeEvent *event) |
Properties | |
bool | proportionalSectionSizes |
Friends | |
class | QxtHeaderViewPrivate |
An extended QHeaderView with optionally proportional section sizes.
Definition at line 34 of file qxtheaderview.h.
QxtHeaderView::QxtHeaderView | ( | Qt::Orientation | orientation, |
QWidget * | parent = 0 |
||
) | [explicit] |
Constructs a new QxtHeaderView with orientation and parent.
Definition at line 52 of file qxtheaderview.cpp.
References QXT_INIT_PRIVATE.
: QHeaderView(orientation, parent) { QXT_INIT_PRIVATE(QxtHeaderView); }
bool QxtHeaderView::hasProportionalSectionSizes | ( | ) | const |
Definition at line 68 of file qxtheaderview.cpp.
{
return qxt_d().proportional;
}
void QxtHeaderView::resizeEvent | ( | QResizeEvent * | event ) | [protected] |
Definition at line 106 of file qxtheaderview.cpp.
{ QHeaderView::resizeEvent(event); if (qxt_d().proportional) { int total = 0; for (int i = 0; i < count(); ++i) total += qxt_d().factors.value(i, 1); int totalSize = 0; for (int i = 0; i < count() - 1; ++i) { qreal factor = qxt_d().factors.value(i, 1) / static_cast<qreal>(total); int sectionSize = factor * (orientation() == Qt::Horizontal ? width() : height()); sectionSize = qMax(minimumSectionSize(), sectionSize); resizeSection(i, sectionSize); totalSize += sectionSize; } // avoid rounding errors, give rest to the last section resizeSection(count() - 1, width() - totalSize); } }
int QxtHeaderView::sectionStretchFactor | ( | int | logicalIndex ) | const |
Returns the stretch factor of the section at logicalIndex.
Definition at line 88 of file qxtheaderview.cpp.
{
return qxt_d().factors.value(logicalIndex);
}
void QxtHeaderView::setProportionalSectionSizes | ( | bool | enabled ) |
Definition at line 73 of file qxtheaderview.cpp.
{ if (qxt_d().proportional != enabled) { qxt_d().proportional = enabled; if (enabled) setResizeMode(QHeaderView::Fixed); } }
void QxtHeaderView::setSectionStretchFactor | ( | int | logicalIndex, |
int | factor | ||
) |
Sets the stretch factor of the section at logicalIndex.
Definition at line 98 of file qxtheaderview.cpp.
{ qxt_d().factors.insert(logicalIndex, factor); }
friend class QxtHeaderViewPrivate [friend] |
Definition at line 37 of file qxtheaderview.h.
bool QxtHeaderView::proportionalSectionSizes [read, write] |
Definition at line 37 of file qxtheaderview.h.