You would need to use something like this code below.
myclass.h
class MyClass : public QObject
{
Q_OBJECT
public:
explicit MyClass(QObject *parent = 0);
...
public slots:
void swapListWidgets();
...
private:
QStackedWidget *m_stackedWidget;
}
myclass.cpp
MyClass::MyClass(QObject *parent)
: QObject(parent)
, m_stackedWidget(new QStackedWidget(this))
{
QListWidget *listWidget1 = new QListWidget(m_stackedWidget);
listWidget1->addItem("Hello");
listWidget1->addItem("Hi");
QListWidget *listWidget2 = new QListWidget(m_stackedWidget);
m_stackedWidget->addWidget(listWidget1);
m_stackedWidget->addWidget(listWidget2);
...
connect(listWidget1, SIGNAL(itemClicked(QListWidgetItem * item)), SLOT(swapListWidgets(QListWidgetItem * item)));
// OR
connect(m_stackedWidget.index(0), SIGNAL(itemClicked(QListWidgetItem * item)), SLOT(swapListWidgets(QListWidgetItem * item)));
...
}
...
MyClass::swapListWidgets(QListWidgetItem *item)
{
if (item.text() == "Hello")
m_stackedWidget.setCurrentWidget(list2);
// or m_stackedWidget.setCurrentIndex(1);
}
...