布局类(10):【类】QStackedWidget [官翻]

QStackedWidget 类

QStackedWidget类提供了一个小部件堆栈,其中一次只能看到一个小部件。

Header:#include < QStackedWidget>
qmake:QT += widgets
Inherits:QFrame
Inherited By:

详细说明

QStackedWidget可用于创建类似于QTabWidget提供的用户界面。它是构建在QStackedLayout类之上的一个方便的布局小部件。

与QStackedLayout一样,QStackedWidget可以构造并填充许多子Widget(“pages”):

     QWidget *firstPageWidget = new QWidget;
     QWidget *secondPageWidget = new QWidget;
     QWidget *thirdPageWidget = new QWidget;

     QStackedWidget *stackedWidget = new QStackedWidget;
     stackedWidget->addWidget(firstPageWidget);
     stackedWidget->addWidget(secondPageWidget);
     stackedWidget->addWidget(thirdPageWidget);

     QVBoxLayout *layout = new QVBoxLayout;
     layout->addWidget(stackedWidget);
     setLayout(layout);

QStackedWidget不提供用户切换页面的内在方法。这通常是通过QComboBox或QListWidget来完成的,QListWidget存储QStackedWidget页面的标题。例如:

     QComboBox *pageComboBox = new QComboBox;
     pageComboBox->addItem(tr("Page 1"));
     pageComboBox->addItem(tr("Page 2"));
     pageComboBox->addItem(tr("Page 3"));
     connect(pageComboBox, QOverload<int>::of(&QComboBox::activated),
             stackedWidget, &QStackedWidget::setCurrentIndex);

填充堆叠的小部件时,这些小部件被添加到内部列表中。函数的作用是:返回列表中小部件的索引。这些小部件可以使用addWidget() 函数添加到列表的末尾,也可以使用insertWidget() 函数插入到给定的索引中。函数的作用是:从堆叠的小部件中移除一个小部件。堆叠小部件中包含的小部件数量可以使用count() 函数获得。

函数的作用是:返回给定索引位置的小部件。屏幕上显示的小部件的索引由currentIndex() 给定,可以使用setCurrentIndex() 更改。以类似的方式,可以使用currentWidget() 函数检索当前显示的小部件,并使用setCurrentWidget() 函数进行更改。

每当堆叠小部件中的当前小部件发生更改或从堆叠小部件中移除小部件时,将分别发出currentChanged() 和widgetRemoved() 信号。

属性

  1. count: const int 堆叠小部件包含的小部件数

    • int count() const
  2. currentIndex: int 可见小部件的索引位置

    • int currentIndex() const
    • void setCurrentIndex(int index)

    Notifier signal:

    • void currentChanged(int index)

公共函数

构造和析构

  • QStackedWidget(QWidget *parent = nullptr)
  • virtual ~QStackedWidget()

属性相关

  • int count() const
  • int currentIndex() const
  • void setCurrentIndex(int index)

增删查

  • int addWidget(QWidget *widget)
  • int insertWidget(int index, QWidget *widget)
  • void removeWidget(QWidget *widget)
  • int indexOf(QWidget *widget) const
  • QWidget * currentWidget() const
  • QWidget * widget(int index) const

公共槽

  • void setCurrentIndex(int index)
  • void setCurrentWidget(QWidget *widget)

信号

  • void currentChanged(int index)
  • void widgetRemoved(int index)

重写的受保护的函数

  • virtual bool event(QEvent *e) override

总结

就是给QFrame 设置了一个QStackedLayout,使用布局实现增删查等操作,可参考QStackedLayout内容。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值