当前位置:   article > 正文

Qt应用开发(基础篇)——堆栈窗口 QStackedWidget_qt 堆栈窗口

qt 堆栈窗口

一、前言

        QStackedWidget继承于QFrame,QFrame继承于QWidget,是Qt常用的堆栈窗口部件。

        框架类QFrame介绍

         QStackedWidget堆栈窗口,根据下标切换,一次显示一个小部件,常用于应用界面切换图片轮询播放等场景。

 二、QStackedWidget类

1、count

        该属性表示当前堆栈子部件的数量。

int count() const    //获取选项卡数

2、currentIndex

        该属性表示当前显示的子部件的下标,如果子部件数量为0,则返回-1。

  1. int currentIndex() const //获取当前选项卡下标
  2. void setCurrentIndex(int index) //设置当前选项卡下标

3、公共方法

1)增加子部件

        使用addWidget增加子部件,默认插入到尾部。

int addWidget(QWidget *widget)
2)插入子部件

        使用insertWidget在索引的位置插入子部件,如果索引index超出范围,那么插入到尾部,返回值为实际插入的位置。

int insertWidget(int index, QWidget *widget)
3)移除子部件

        使用removeWidget移除子部件,注意这里是从布局中移除,导致小部件被隐藏起来。

void removeWidget(QWidget *widget)
4)查找子部件

        使用indexOf找到某子部件索引,如果不存在则返回-1。

int indexOf(QWidget *widget) const
5)设置/读取子部件

        如果子部件不存在则返回空指针。

  1. QWidget *widget(int index) const
  2. QWidget *currentWidget() const
  3. void setCurrentWidget(QWidget *widget)

4、信号

        当前索引发生变化触发currentChanged信号。

void currentChanged(int index)

        子部件被移除触发widgetRemoved信号。

void widgetRemoved(int index)

 5、实例

        根据下拉框的选项修改stackWidget的显示子部件。

  1. QFont serifFont("Times", 20, QFont::Bold);
  2. QWidget *firstPageWidget = new QWidget;
  3. QLabel *firstble = new QLabel("Page1",firstPageWidget);
  4. firstble->setFont(serifFont);
  5. QWidget *secondPageWidget = new QWidget;
  6. QLabel *secondble = new QLabel("Page2",secondPageWidget);
  7. secondble->setFont(serifFont);
  8. QWidget *thirdPageWidget = new QWidget;
  9. QLabel *thirdble = new QLabel("Page3",thirdPageWidget);
  10. thirdble->setFont(serifFont);
  11. QStackedWidget *stackedWidget = new QStackedWidget(this);
  12. stackedWidget->addWidget(firstPageWidget);
  13. stackedWidget->addWidget(secondPageWidget);
  14. stackedWidget->addWidget(thirdPageWidget);
  15. stackedWidget->setFrameStyle(QFrame::Panel | QFrame::Raised);
  16. stackedWidget->move(300,200);
  17. stackedWidget->setFixedWidth(200);
  18. stackedWidget->setFixedHeight(200);
  19. QVBoxLayout *layout = new QVBoxLayout;
  20. layout->addWidget(stackedWidget);
  21. setLayout(layout);
  22. QComboBox *pageComboBox = new QComboBox(this);
  23. pageComboBox->addItem(tr("Page 1"));
  24. pageComboBox->addItem(tr("Page 2"));
  25. pageComboBox->addItem(tr("Page 3"));
  26. connect(pageComboBox, QOverload<int>::of(&QComboBox::activated),
  27. stackedWidget, &QStackedWidget::setCurrentIndex);
  28. pageComboBox->move(100,200);

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号