详解Qt中QStackedWidget控件的使用

 更新时间:2023年02月26日 08:25:13   作者:音视频开发老舅  
这篇文章主要为大家详细介绍了Qt中QStackedWidget控件的具体使用,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下

引言

QStackedWidget继承自QFrame。

QStackedWidget类提供了多页面切换的布局,一次只能看到一个界面。

QStackedWidget可用于创建类似于QTabWidget提供的用户界面。

先来看看QTabWidget控件的效果:

需要注意的是: QTabWidget的currentTabText用于修改名称。在插入页中插入新的界面。

QStackedWidget的属性

1️、接口(方法)

  • int addWidget(QWidget * widget) 添加页面,并返回页面对应的索引
  • int count() const 获取页面数量
  • int currentIndex() const 获取当前页面的索引
  • QWidget * currentWidget() const 获取当前页面
  • int indexOf(QWidget * widget) const 获取QWidget页面所对应的索引
  • int insertWidget(int index, QWidget * widget) 在索引index位置添加页面
  • void removeWidget(QWidget * widget) 移除QWidget页面,并没有被删除,只是从布局中移动,从而被隐藏。
  • QWidget * widget(int index) const 获取索引index所对应的页面

2️、信号

  • void currentChanged(int index) 当前页面发生变化时候发射,index为新的索引值
  • void widgetRemoved(int index) 页面被移除时候发射,index为页面对应的索引值

3️、共有槽函数

  • void setCurrentIndex(int index) 设置索引index所在的页面为当前页面
  • void setCurre使用ntWidget(QWidget * widget) 设置QWidget页面为当前页面

一般情况,使用QStackedWidget常用的两种方式:

根据currentWidget()来判断当前页面,然后通过setCurrentWidget()来设置需要显示的页面。

根据currentIndex()来判断当前页面索引,然后通过setCurrentIndex()来设置需要显示的页面。

实例演示

(实现QTabWidget的效果,用按钮触发切换界面)

编辑ui界面

编辑代码(连接信号槽)

#include "layout.h"
#include"qlabel.h"
#include"qstackedwidget.h"
#include"qpushbutton.h"
#pragma execution_character_set("utf-8")
Layout::Layout(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    connect(ui.btn1, &QPushButton::clicked, [=]() {
        ui.stackedWidget->setCurrentIndex(1);
        });
 
    connect(ui.btn2, &QPushButton::clicked, [=]() {
        ui.stackedWidget->setCurrentIndex(2);
        });
 
    connect(ui.btn3, &QPushButton::clicked, [=]() {
        ui.stackedWidget->setCurrentIndex(0);
        });
}

效果展示

到此这篇关于详解Qt中QStackedWidget控件的使用的文章就介绍到这了,更多相关Qt QStackedWidget内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • c++判断是否为目录的示例分享

    c++判断是否为目录的示例分享

    这篇文章主要介绍了c++判断是否为目录的示例,需要的朋友可以参考下
    2014-03-03
  • Qt实现SqlRelationalTable关联表组件

    Qt实现SqlRelationalTable关联表组件

    在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍SqlRelationalTable关联表组件的常用方法及灵活运用,感兴趣的可以了解一下
    2023-12-12
  • C语言中循环嵌套的应用方式

    C语言中循环嵌套的应用方式

    这篇文章主要介绍了C语言中循环嵌套的应用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 如何实现在C++中调用C函数

    如何实现在C++中调用C函数

    这篇文章主要介绍了如何实现在C++中调用C函数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • C++中const用于函数重载的示例代码

    C++中const用于函数重载的示例代码

    这篇文章主要介绍了C++中const用于函数重载的相关资料,需要的朋友可以参考下
    2017-09-09
  • C指针原理教程之垃圾回收-内存泄露

    C指针原理教程之垃圾回收-内存泄露

    C语言没有运行时库,无法自动压缩使用中的内存,缩小堆栈所需内存空间。若只申请内存,没有释放,势必造成系统内存不断减少、丢失。长时间的运行,最终导致系统死机。文章阐述了C语言垃圾产生的原因,并从引用计数、标记一清除算法两方面提出如何实现C语言的垃圾回收。
    2019-02-02
  • C++ 命名空间避免命名冲突的实现

    C++ 命名空间避免命名冲突的实现

    命名空间是C++中用来避免命名冲突的一种机制,本文主要介绍了C++ 命名空间避免命名冲突的实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • C++ ffmpeg实现将视频帧转换成jpg或png等图片

    C++ ffmpeg实现将视频帧转换成jpg或png等图片

    有时播放实时流的时候有截图的需求,需要将解码出来的图片保存本地或上传服务器,这时就需要将avframe中的数据编码成png、jpg等格式的图片,我们使用ffmpeg的相关编码器就可以实现功能,下面就来讲讲具体实现方法吧
    2023-03-03
  • 10个步骤Opencv轻松检测出图片中条形码

    10个步骤Opencv轻松检测出图片中条形码

    这篇文章主要为大家详细介绍了Opencv轻松检测出图片中条形码的10个步骤,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C语言详细分析结构体的内存对齐规则

    C语言详细分析结构体的内存对齐规则

    C 数组允许定义可存储相同类型数据项的变量,结构是 C 编程中另一种用户自定义的可用的数据类型,它允许你存储不同类型的数据项,本篇让我们来了解C 的结构体内存对齐
    2022-07-07

最新评论