Qt5之QStackedWidget

来源:互联网 发布:神经炎 知乎 编辑:程序博客网 时间:2024/05/21 19:34

**// QStackedWidget
// currentIndex() // 返回当前窗口索引
// setCurrentIndex() //设置当前窗口索引
// signal currentChanged() // 当前窗口改变
// addWidget() //增加窗口
// removeWidget() //删除窗口
// indexOf() //返回窗口的索引号
// count() //返回QStackedWidget子窗口数
// widget() //返回索引号的窗口
// insertWidget(index,widget) // 插入窗口**

private:    QStackedWidget *sw;public slots:    void change();

构造函数:

MainWindow::MainWindow(QWidget *parent)    : QMainWindow(parent){    setWindowTitle("猪");    resize(600,600);    QPushButton *btn = new QPushButton("胖胖猪",this);    btn->move(100,100);    sw = new QStackedWidget(this);    QLabel *label1 = new QLabel;    label1->setScaledContents(true);    QMovie *movie1 = new QMovie(tr(":/image/1.gif"));    label1->setMovie(movie1);    movie1->start();    sw->addWidget(label1);    sw->move(200,200);    sw->resize(300,300);    QLabel *label2 = new QLabel;    label2->setScaledContents(true);    QMovie *movie2 = new QMovie(tr(":/image/2.gif"));    label2->setMovie(movie2);    movie2->start();    sw->addWidget(label2);    QLabel *label3 = new QLabel;    QMovie *movie3 = new QMovie(tr(":/image/3.gif"));    label3->setMovie(movie3);    movie3->start();    sw->addWidget(label3);    QLabel *label4 = new QLabel;    label4->setScaledContents(true);    QMovie *movie4 = new QMovie(tr(":/image/4.gif"));    label4->setMovie(movie4);    movie4->start();    sw->addWidget(label4);    connect(btn,&QPushButton::clicked,this,&MainWindow::change);}

change():

void MainWindow::change(){    sw->setCurrentWidget(sw->widget((sw->currentIndex()+1)%4));}

效果:点击按钮会出现不同的QLabel
这里写图片描述
这里写图片描述

原创粉丝点击