#include class TreeWidget : public QTreeWidget { Q_OBJECT public: TreeWidget(QWidget *parent = 0) : QTreeWidget(parent) { initialize(); } void initialize() { setDragEnabled(true); setColumnCount(2); QList items; for (int i = 0; i < 10; ++i) { QTreeWidgetItem *item = new QTreeWidgetItem(); for (int j = 0; j < columnCount(); ++j) { item->setText(j, QString("item: %1:%2").arg(i).arg(j)); } items.append(item); } addTopLevelItems(items); for(int i = 0; i < columnCount(); i++ ) { resizeColumnToContents(i); } } public slots: void hideHeader() { setColumnHidden(0, true); } void moveHeader() { header()->moveSection(0, 1); } }; class Foo : public QWidget { Q_OBJECT TreeWidget *_treeWidget; public: Foo() : QWidget(0) { QVBoxLayout *lay = new QVBoxLayout(this); _treeWidget = new TreeWidget; QPushButton *button = new QPushButton("hide"); QPushButton *button2 = new QPushButton("move"); lay->addWidget(_treeWidget); lay->addWidget(button); lay->addWidget(button2); connect(button, SIGNAL(clicked()), this, SLOT(didClickHide())); connect(button2, SIGNAL(clicked()), this, SLOT(didClickMove())); } private slots: void didClickHide() { _treeWidget->hideHeader(); } void didClickMove() { _treeWidget->moveHeader(); } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); Foo w; w.show(); return app.exec(); } #include "main.moc"