//
// addItem() //添加部件
// insertItem() //特定索引插入部件
// count() //返回item个数
// currentIndex() //返回当前部件index
// currentWidget() //返回当前部件
// setCurrentWidget() //setCurrentIndex()
// currentChanged() //current index发生改变
// indexOf() //返回部件的索引
// widget() //返回特定索引的部件
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
QWidget* initWidget(const QString&,const QString&,const QString&);
public slots:
void change();
private:
QToolBox *tb;
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
resize(600,600);
tb = new QToolBox(this);
tb->resize(400,400);
QWidget* w = initWidget(":/image/1.jpg","张三丰","打太极");
QWidget* w1 = initWidget(":/image/4.png","星宿老仙","放毒");
tb->addItem(w,QIcon(":/image/3.ico"),"武侠");
tb->addItem(w1,QIcon(":/image/3.ico"),"坏人");
tb->move(100,100);
QPushButton *btn = new QPushButton("下一个",this);
btn->move(50,50);
connect(btn,&QPushButton::clicked,this,&MainWindow::change);
}
QWidget* MainWindow::initWidget(const QString& head,const QString& name,const QString& desc)
{
QWidget* w = new QWidget;
QLabel* h = new QLabel(w);
h->setPixmap(QPixmap(head));
h->setScaledContents(true);
h->resize(30,30);
QLabel* n = new QLabel(w);
n->setText(name);
QLabel* d = new QLabel;
d->setText(desc);
//设置文字颜色
n->setStyleSheet(QString("color: %1;").arg("rgb(255,0,0)"));
d->setStyleSheet(QString("color: %1;").arg("rgb(0,255,0)"));
QVBoxLayout* pvlayout = new QVBoxLayout;
pvlayout->addStretch();
pvlayout->addWidget(n);
pvlayout->addWidget(d);
pvlayout->addStretch();
pvlayout->setSpacing(5);
pvlayout->setContentsMargins(0,0,0,0);
QHBoxLayout* phlayout = new QHBoxLayout;
phlayout->addWidget(h);
phlayout->addLayout(pvlayout);
phlayout->addStretch();
phlayout->setContentsMargins(0,0,0,0);
w->setLayout(phlayout);
return w;
}
void MainWindow::change()
{
tb->setCurrentWidget(tb->widget((tb->currentIndex()+1)%2));
}
运行结果: