QListWidget和QStackedWidget的使用:
QListWidget继承于QListView,最原始的是QWidget类。QStackedWidget也是继承于QWidget类。
新建QListWidget类contentsWidget 对象,如下:
contentsWidget = new QListWidget ;
contentsWidget-> setViewMode( QListView :: IconMode);
contentsWidget-> setIconSize( QSize ( 96 , 84 ));
contentsWidget-> setMovement( QListView :: Static);
QListWidgetItem * configButton = new QListWidgetItem ( contentsWidget);
configButton-> setIcon( QIcon ( ":/images/config.png" ));
configButton-> setText( tr( "Configuration" ));
configButton-> setTextAlignment( Qt :: AlignHCenter);
configButton-> setFlags( Qt :: ItemIsSelectable | Qt :: ItemIsEnabled);
QListWidgetItem 就是QListWidget里面的小item了,可以添加你需要的数量。
connect( contentsWidget,
SIGNAL ( currentItemChanged( QListWidgetItem *, QListWidgetItem *)),
this , SLOT ( changePage( QListWidgetItem *, QListWidgetItem *)));
这个changePage自己定义吧,看你需要做什么。前面个是当前的item,后面个参数是前一个item。
contentsWidget-> row( current);其中current是 QListWidgetItem * ,row获取这个item的index。
结合QStackedWidget ,
pagesWidget = new QStackedWidget ;
pagesWidget-> addWidget( new ConfigurationPage);
直接添加你的widget就ok了。 ConfigurationPage是自定义的widget。
可以通过 pagesWidget-> setCurrentIndex( contentsWidget-> row( current));来设置当前显示的widget。
stack顾名思义就是一个类似栈的东西,当前只显示一个widget,可以通过index进行插入,删除之类的操作。