class LTreeWidget : public QTreeWidget{ Q_OBJECT public: LTreeWidget(QWidget* parent = 0) : QTreeWidget(parent) { setSortingEnabled(false); // disbale the default built in sorting // our sorting method header()->setSortIndicatorShown(true); header()->setClickable(true); connect(header(), SIGNAL(sectionClicked(int)), this, SLOT(customSortByColumn(int))); customSortByColumn(header()->sortIndicatorSection()); } public slots: void customSortByColumn(int column) { Qt::SortOrder order = header()->sortIndicatorOrder(); // get the order sortItems(column, order); } };