首页 > 其他分享 >20、布局(QStackedWidget)

20、布局(QStackedWidget)

时间:2023-12-25 16:44:50浏览次数:28  
标签:Widget btn 20 布局 addWidget new include QStackedWidget

QStackedWidget 是 Qt 框架中的一个容器类,它可以用来管理多个窗口或页面,只显示其中一个窗口或页面。在 QStackedWidget 中,只有当前激活的窗口或页面可见,其他窗口或页面被隐藏。

使用 QStackedWidget 可以方便地实现页面切换效果,比如制作一个具有多个页面的向导,或者实现一个选项卡式的界面。

举例:

#include "widget.h"
#include "ui_widget.h"
#include <QHBoxLayout>
#include <QDebug>
#include "widget1.h"
#include "widget2.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    btnGroup= new QButtonGroup(this);
    QStringList navList;
    navList << QStringLiteral("widget1") << QStringLiteral("widget2");
    QVBoxLayout* vlayout = new QVBoxLayout(this);
    vlayout->setContentsMargins(10,10,10,10);
    QWidget *navWidget = new QWidget(this);
    QHBoxLayout* hlayout=new QHBoxLayout(navWidget);
    hlayout->setSpacing(10);
    hlayout->setAlignment(Qt::AlignTop);
    for (int i = 0;i<navList.count() ;i++) {
        QPushButton *btn= new QPushButton(navList.at(i));
        btn->setMinimumSize(80,30);
        hlayout->addWidget(btn);
        //设置按钮可选中按下类似复选框的功能
        btn->setCheckable(true);
        qDebug() << i;
        //加入group
        btnGroup->addButton(btn, i);
        connect(btn,&QPushButton::clicked,this,[=](){
            click_btn(i);
        });

    }
    vlayout->addWidget(navWidget);



    mainWidget=new QStackedWidget;
    mainWidget->setMinimumHeight(400);

    mainWidget->addWidget(new Widget1());
    mainWidget->addWidget(new Widget2());
    vlayout->addWidget(mainWidget);


}

Widget::~Widget()
{
    delete ui;
}

void Widget::click_btn(int index)
{

    qDebug() << index;
    mainWidget->setCurrentIndex(index);
}

 

标签:Widget,btn,20,布局,addWidget,new,include,QStackedWidget
From: https://www.cnblogs.com/baisedeyu/p/17926397.html

相关文章

  • 每日总结2023年12月25日
    临近期末,最近事比较多,对之前软件构造实验做一个汇总软件构造实验作业实验名称:百度机器翻译SDK实验,百度图像增强与特效SDK实验,JFinal极速开发框架实验班级:信2105-1 学号:20214309 姓名:陈俊杰 实验一:百度机器翻译SDK实验一、实验要求任务一:下载配置百度翻译Java相关库及......
  • 金恒科技受邀参加北京科技大学2023年“金恒科技奖励金”颁奖仪式
    12月22日,2023年北京科技大学“金恒科技奖励金”颁奖仪式在办公楼306会议室举行,北京科技大学副校长张卫冬,校友会办公室、基金会办公室主任闫奎铭,钢铁共性技术协同创新中心主任何安瑞,国家板带生产先进装备工程技术研究中心主任杨荃等学校领导、老师和学生代表参加仪式,金恒科技党委书......
  • LY1090 [ 20230220 CQYC模拟赛IX T1 ] 矩阵
    题意给定一个矩阵,你需要支持:循环左移循环右移循环下移循环上移按行置换求逆按列置换求逆Sol前\(4\)个操作是\(trivial\)的。如何处理后两个操作?考虑设一个三元组:\((x,y,A_{xy})\)。每次操作,对于每一个元素都能确定操作后另外某个元素。不难发现后两个操作就......
  • P6922 [ICPC2016 WF] Longest Rivers 题解
    Description有\(n\)条河和\(m+1\)个交汇处构成一棵以\(0\)号点(即大海)为根的树。每条河有各自的名称。对于一个交汇处,从它流出的干流的名称是流入这个交汇处的各个支流的名称之一。一条河流的长度是以它为名称的河流的长度之和。对于一个可能的命名方案,一条河流的排名等于......
  • 207. 课程表(中)
    目录题目题解:BFS210.课程表Ⅱ题目你这个学期必须选修numCourses门课程,记为0到numCourses-1。在选修某些课程之前需要一些先修课程。先修课程按数组prerequisites给出,其中prerequisites[i]=[ai,bi],表示如果要学习课程ai则必须先学习课程bi。例如,先修......
  • 记一道ISCTF2022中misc-LSB
    ISCTF-misc-LSB:题目描述:这是一道ISCTF2022上面misc里面一道图片隐写题,而且出题人还给了提示,hint:注意大小端问题题目附件下载下来是一张png的图片:第一步:将图片放进010_editor里面查看一下它的16进制:在数据底部发现了一个zip的压缩包,而且压缩包里面有个flags.txt的文档,然后......
  • centos 7.5 安装 sql server 2022
    官方文档地址:https://learn.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-red-hat?view=sql-server-ver16&tabs=rhel8选择RedHat8版本1.下载SQLServer2022(16.x)RedHat8存储库配置文件:sudocurl-o/etc/yum.repos.d/mssql-server.repohttps://pack......
  • CATIA Composer R2023:创新设计的3D魔力盒
    DSCATIAComposerR2023是一款全球领先的3D辅助设计软件,它为设计师提供了强大的设计和建模工具,帮助他们在虚拟环境中创建、修改和优化产品设计。点击获取DSCATIAComposerR2023该软件采用了先进的3D建模技术,可以轻松处理复杂的产品设计任务,并提供了丰富的建模工具和功能,包括......
  • 南外集训 2023.12.25 T1
    给定一个图,求\(s\)到\(t\)的最短路,其中路径的长度是其长度前\(k\)大边的长度和。\(n,k\le1000,m\le2000\)。做法枚举被算入的最小边权\(w\),所有小于\(w\)的边权都可以视为\(0\),而我们需要确保大于等于\(w\)的边至少走了\(k\)条。如何实现这一点呢?通过记录已......
  • 速看!2024网页制作工具测评大全,附网页制作教程
    你知道目前世界上有多少个网站吗?18亿多!如果现在你想做个网站,必须考虑如何从数量众多的网站中脱颖而出。当然第一步,你需要个优秀好用的网页制作工具。本文,我盘点了15个网页制作工具,从功能简介、价格、学习难度等方面为你做了全面解析,欢迎收藏。相信网页制作工具一旦选对,你的设计之......