#include "QMyStackedWidget.h" QMyStackedWidget::QMyStackedWidget(QWidget *parent) : QStackedWidget(parent) { //ui.setupUi(this); } QMyStackedWidget::~QMyStackedWidget() { } void QMyStackedWidget::addWidget(QWidget * pWidget, const QString & strWidgetName) { //防御性验证 if ( pWidget == NULL ) { return; } m_subWidgetTable[strWidgetName] = pWidget; QStackedWidget::addWidget( pWidget ); } void QMyStackedWidget::removeWidget(QWidget * pWidget) { const QString & strWidgetName = m_subWidgetTable.key( pWidget ); //判断一下列表中是否有这个widget if ( strWidgetName.length() != 0 ) { QStackedWidget::removeWidget( pWidget ); m_subWidgetTable.remove( strWidgetName ); } } void QMyStackedWidget::removeWidget(const QString & strWidgetName) { if ( m_subWidgetTable.contains(strWidgetName) == true ) { QStackedWidget::removeWidget( m_subWidgetTable[strWidgetName] ); m_subWidgetTable.remove( strWidgetName ); } } void QMyStackedWidget::showWidget(const QString & strWidgetName) { if ( m_subWidgetTable.contains(strWidgetName) == true ) { setCurrentWidget( m_subWidgetTable[strWidgetName] ); } } void QMyStackedWidget::showWidget(int index) { }