QStackedWidget is a good approach but the code can be much simpler.
item->setText(0, name);
item->setData(0, Qt::UserRole, configPage);
stackedWidget->addWidget(configPage);
return item;
}
QTreeWidgetItem* X::addPage(const QString &name, QWidget *configPage, QTreeWidgetItem *parent = 0) {
QTreeWidgetItem *item = parent ? new QTreeWidgetItem(parent) : new QTreeWidgetItem(treeWidget);
item->setText(0, name);
item->setData(0, Qt::UserRole, configPage);
stackedWidget->addWidget(configPage);
return item;
}
To copy to clipboard, switch view to plain text mode
and then:
// ...
QWidget *w
= item
->data
(Qt
::UserRole).
value<QWidget
*>
();
if(w) stackedWidget->setCurrentWidget(w);
}
connect(treeWidget, SIGNAL(itemClicked ( QTreeWidgetItem *, int )), this, SLOT(showConfig(QTreeWidgetItem*)));
// ...
void X::showConfig(QTreeWidgetItem *item) {
QWidget *w = item->data(Qt::UserRole).value<QWidget*>();
if(w) stackedWidget->setCurrentWidget(w);
}
To copy to clipboard, switch view to plain text mode
Bookmarks