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() 信号。
属性
-
count: const int 堆叠小部件包含的小部件数
- int count() const
-
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内容。