给你段代码思路,参考一下
XXXX::XXXX()
{
m_pStatckedWidget = new QStackedWidget(this);
m_pBtnEmployee = new QPushButton(........);
m_pBtnCustomer = new ......
QWidget * pWd = new WidgetEmployee(); //自己创建的类
m_pStatckedWidget->addWidget(pWd);
m_mapBtnWidget[m_pBtnEmployee] = pWd;
pWd = new WidgetCustomer();
m_pStatckedWidget->addWidget(pWd);
m_mapBtnWidget[m_pBtnCustomer] = pWd;
....
connect(m_pBtnEmployee, SIGNAL(clicked()), this, SLOT(slotChangeWidget()));
connect(m_pBtnCustomer, SIGNAL(clicked()), this, SLOT(slotChangeWidget()));
........
}
void XXXX::slotChangeWidget()
{
const QObject * pSender = sender();
if(0 == pSender)
{
return;
}
m_pStatckedWidget->setCurrentWidget(m_mapBtnWidget[pSender]);
}