【QT】多层QTreeWidget与QStackedWidget的关联操作

news2025/3/10 5:49:01

通过点击多层QTreeWidget来控制QStackedWidget中的page页面切换
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. treeWidget设计
    在这里插入图片描述
    在这里插入图片描述

treeWidget设计:

    // treeWidget设计
    ui->treeWidget->clear();
    ui->treeWidget->setColumnCount(1);
    //第一层
    QStringList l;
    l<<"管理系统";
    QTreeWidgetItem *pf = new QTreeWidgetItem(ui->treeWidget,l);
    ui->treeWidget->addTopLevelItem(pf);

    //第二层
    l.clear();
    l<<"学生管理";
    QTreeWidgetItem *p1 = new QTreeWidgetItem(pf,l);
    l.clear();
    l<<"管理员管理";
    QTreeWidgetItem *p2= new QTreeWidgetItem(pf,l);
    pf->addChild(p1);
    pf->addChild(p2);


    //第三层
    l.clear();
    l<<"学校学生信息管理";
    QTreeWidgetItem *pi = new QTreeWidgetItem(p1,l);
    l.clear();
    l<<"学校学生成绩管理";
    QTreeWidgetItem *ps = new QTreeWidgetItem(p1,l);
    p1->addChild(pi);
    p1->addChild(ps);

    //第四层
    l.clear();
    l<<"2020级";
    QTreeWidgetItem *p20 = new QTreeWidgetItem(ps,l);
    l.clear();
    l<<"2021级";
    QTreeWidgetItem *p21 = new QTreeWidgetItem(ps,l);
    l.clear();
    l<<"2022级";
    QTreeWidgetItem *p22 = new QTreeWidgetItem(ps,l);
    l.clear();
    l<<"2023级";
    QTreeWidgetItem *p23 = new QTreeWidgetItem(ps,l);
    //父          子
    ps->addChild(p20);
    ps->addChild(p21);
    ps->addChild(p22);
    ps->addChild(p23);

    //第五层
    l.clear();
    l<<"自动化专业";
    QTreeWidgetItem *p201 = new QTreeWidgetItem(p20,l);
    l.clear();
    l<<"智能科学与技术专业";
    QTreeWidgetItem *p202 = new QTreeWidgetItem(p20,l);
    //父          子
    p20->addChild(p201);
    p20->addChild(p202);

    l.clear();
    l<<"自动化专业";
    QTreeWidgetItem *p211 = new QTreeWidgetItem(p21,l);
    l.clear();
    l<<"智能科学与技术专业";
    QTreeWidgetItem *p212 = new QTreeWidgetItem(p21,l);
    //父          子
    p21->addChild(p211);
    p21->addChild(p212);

    l.clear();
    l<<"自动化专业";
    QTreeWidgetItem *p221 = new QTreeWidgetItem(p22,l);
    l.clear();
    l<<"智能科学与技术专业";
    QTreeWidgetItem *p222 = new QTreeWidgetItem(p22,l);
    //父          子
    p22->addChild(p221);
    p22->addChild(p222);

    l.clear();
    l<<"自动化专业";
    QTreeWidgetItem *p231 = new QTreeWidgetItem(p23,l);
    l.clear();
    l<<"智能科学与技术专业";
    QTreeWidgetItem *p232 = new QTreeWidgetItem(p23,l);
    //父          子
    p23->addChild(p231);
    p23->addChild(p232);


    //第六层
    //20-自动化
    l.clear();
    l<<"1班";
    QTreeWidgetItem *p2011 = new QTreeWidgetItem(p201,l);
    l.clear();
    l<<"2班";
    QTreeWidgetItem *p2012 = new QTreeWidgetItem(p201,l);
    l.clear();
    l<<"3班";
    QTreeWidgetItem *p2013 = new QTreeWidgetItem(p201,l);
    //父          子
    p201->addChild(p2011);
    p201->addChild(p2012);
    p201->addChild(p2013);

    //20-智科
    l.clear();
    l<<"1班";
    QTreeWidgetItem *p2021 = new QTreeWidgetItem(p202,l);
    l.clear();
    l<<"2班";
    QTreeWidgetItem *p2022 = new QTreeWidgetItem(p202,l);
    //父          子
    p202->addChild(p2021);
    p202->addChild(p2022);


    //21-自动化
    l.clear();
    l<<"1班";
    QTreeWidgetItem *p2111 = new QTreeWidgetItem(p211,l);
    l.clear();
    l<<"2班";
    QTreeWidgetItem *p2112 = new QTreeWidgetItem(p211,l);
    l.clear();
    l<<"3班";
    QTreeWidgetItem *p2113 = new QTreeWidgetItem(p211,l);
    //父          子
    p211->addChild(p2111);
    p211->addChild(p2112);
    p211->addChild(p2113);

    //21-智科
    l.clear();
    l<<"1班";
    QTreeWidgetItem *p2121 = new QTreeWidgetItem(p212,l);
    l.clear();
    l<<"2班";
    QTreeWidgetItem *p2122 = new QTreeWidgetItem(p212,l);
    //父          子
    p212->addChild(p2121);
    p212->addChild(p2122);


    //22-自动化
    l.clear();
    l<<"1班";
    QTreeWidgetItem *p2211 = new QTreeWidgetItem(p221,l);
    l.clear();
    l<<"2班";
    QTreeWidgetItem *p2212 = new QTreeWidgetItem(p221,l);
    l.clear();
    l<<"3班";
    QTreeWidgetItem *p2213 = new QTreeWidgetItem(p221,l);
    //父          子
    p221->addChild(p2211);
    p221->addChild(p2212);
    p221->addChild(p2213);

    //20-智科
    l.clear();
    l<<"1班";
    QTreeWidgetItem *p2221 = new QTreeWidgetItem(p222,l);
    l.clear();
    l<<"2班";
    QTreeWidgetItem *p2222 = new QTreeWidgetItem(p222,l);
    //父          子
    p222->addChild(p2221);
    p222->addChild(p2222);


    //23-自动化
    l.clear();
    l<<"1班";
    QTreeWidgetItem *p2311 = new QTreeWidgetItem(p231,l);
    l.clear();
    l<<"2班";
    QTreeWidgetItem *p2312 = new QTreeWidgetItem(p231,l);
    l.clear();
    l<<"3班";
    QTreeWidgetItem *p2313 = new QTreeWidgetItem(p231,l);
    //父          子
    p231->addChild(p2311);
    p231->addChild(p2312);
    p231->addChild(p2313);

    //20-智科
    l.clear();
    l<<"1班";
    QTreeWidgetItem *p2321 = new QTreeWidgetItem(p232,l);
    l.clear();
    l<<"2班";
    QTreeWidgetItem *p2322 = new QTreeWidgetItem(p232,l);
    //父          子
    p232->addChild(p2321);
    p232->addChild(p2322);
    ui->treeWidget->expandAll();
  1. 关联
    在这里插入图片描述
    在这里插入图片描述
    选择on_treeWidget_itemClicked()函数
    重点是使用setCurrentWidget()和 判断语句
item->text(column) == "3班" 
&& item->parent() && item->parent()->text(column) == "自动化专业" 
&& item->parent()->parent() &&      item->parent()->parent()->text(column) == "2020级"

完整语句:

void MainWindow::on_treeWidget_itemClicked(QTreeWidgetItem *item, int column)
{
    // 获取当前点击的项的文本
    // QString clickedItemText = item->text(column);

    // 根据点击的项进行处理
    if(item->text(column)=="学校学生信息管理")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_StuInfo);
    }
    else if(item->text(column)=="学校学生成绩管理")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_score);
    }
    else if (item->text(column) == "1班" && item->parent() && item->parent()->text(column) == "自动化专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2020级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "2班" && item->parent() && item->parent()->text(column) == "自动化专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2020级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "3班" && item->parent() && item->parent()->text(column) == "自动化专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2020级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "1班" && item->parent() && item->parent()->text(column) == "智能科学与技术专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2020级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "2班" && item->parent() && item->parent()->text(column) == "智能科学与技术专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2020级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "1班" && item->parent() && item->parent()->text(column) == "自动化专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2021级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "2班" && item->parent() && item->parent()->text(column) == "自动化专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2021级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "3班" && item->parent() && item->parent()->text(column) == "自动化专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2021级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "1班" && item->parent() && item->parent()->text(column) == "智能科学与技术专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2021级")
    {

        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "2班" && item->parent() && item->parent()->text(column) == "智能科学与技术专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2021级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "1班" && item->parent() && item->parent()->text(column) == "自动化专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2022级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "2班" && item->parent() && item->parent()->text(column) == "自动化专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2022级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "3班" && item->parent() && item->parent()->text(column) == "自动化专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2022级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "1班" && item->parent() && item->parent()->text(column) == "智能科学与技术专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2022级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "2班" && item->parent() && item->parent()->text(column) == "智能科学与技术专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2022级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "1班" && item->parent() && item->parent()->text(column) == "自动化专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2023级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "2班" && item->parent() && item->parent()->text(column) == "自动化专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2023级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "3班" && item->parent() && item->parent()->text(column) == "自动化专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2023级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "1班" && item->parent() && item->parent()->text(column) == "智能科学与技术专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2023级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }
    else if (item->text(column) == "2班" && item->parent() && item->parent()->text(column) == "智能科学与技术专业" && item->parent()->parent() &&
             item->parent()->parent()->text(column) == "2023级")
    {
        ui->stackedWidget->setCurrentWidget(ui->pg_20auto1);
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1381892.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据仓库(2)-认识数仓

1、数据仓库是什么 数据仓库 &#xff0c;由数据仓库之父比尔恩门&#xff08;Bill Inmon&#xff09;于1990年提出&#xff0c;主要功能仍是将组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料&#xff0c;透过数据仓库理论所特有的资料储存架构&#xff0c;做…

DHCP中继【新华三】

理论【DHCP服务器可以对其直连的网段中的pc&#xff0c;分配其IP地址等服务&#xff0c;但是&#xff0c;对于跨网段进行分配IP地址&#xff0c;需要中间有DHCP中继进行传达&#xff0c;由DHCP中继指定DHCP服务器的位置&#xff0c;可以很好的对其跨网段分配IP地址起到指引的作…

第 2 课 ROS 系统安装和环境搭建

第 2 课 ROS 系统安装和环境搭建 1.版本选择 不同的 Ubuntu 安装的 ROS 版本不同&#xff0c;其中 Ubuntu18.04 的 ROS 对应版本为Melodic。 Ubuntu版本ROS版本Ubuntu16.04KineticUbuntu18.04MelodicUbuntu20.04Noetic 2.检查 Ubuntu 的软件和更新源 找到系统中的“软件和…

数据模型/数据建模的含义

我们可以从以下四个方面来了解 &#xff08;1&#xff09;、业务模型 &#xff08;2&#xff09;、构建表关系/表链接 &#xff08;3&#xff09;、数学模型 &#xff08;4&#xff09;、算法模型 业务模型 建立业务模型的重点是懂业务&#xff0c;即了解业务的整个过…

Java项目:07 Springboot的客户管理系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 springboot客户管理系统 功能模块&#xff1a;登录修改密码客户列表充值列表消费记录客户类型 环境&#xff1a;IDEAjdk1.8Tomcat9MySQL5.7maven3.6…

RK3568笔记八: Display子系统

modetest 是由 libdrm 提供的测试程序&#xff0c;可以查询显示设备的特性&#xff0c;进行基本的显示测试&#xff0c;以及设置显示的模式。 我们可以借助该工具来学习 Linux DRM 应用编程&#xff0c;另外为了深入分析 Rockchip DRM driver&#xff0c;有必要先了解一下这个…

用C语言采集亚马逊amazon产品数据

上一篇文章我是用C写的一个爬取亚马逊的爬虫程序&#xff0c;相信大家已经看过了&#xff0c;这次呢&#xff0c;我依然使用C语言来写一个爬虫&#xff0c;大体上思路是和之前一样&#xff0c;只是支持的库以及语法有些区别&#xff0c;具体的呢我会一一解释出来&#xff0c;方…

DHCP动态主机配置协议

文章目录 DHCP1、DHCP的优势2、DHCP的分配方式3、DHCP的租约过程4、服务器配置命令格式命令图文详解 DHCP DHCP&#xff1a;动态主机配置协议 1、DHCP的优势 减少管理员的工作量 避免输入错误的可能 避免IP地址冲突 当更改IP地址段时&#xff0c;不需要重新配置每个用户的…

【教学类-44-03】20240111阿拉伯数字字帖的字体(三)——德彪钢笔行书(实线字体)和print dashed(虚线字体)

作品展示: 背景需求&#xff1a; 一、寻找适合幼儿书写的数字描字帖&#xff0c;文鼎标楷国字体有部分数字补符合我的要求 【教学类-44-02】20231226阿拉伯数字字帖的字体&#xff08;二&#xff09;——文鼎标楷国字体 AR StdKaiGDLB5 Md&#xff08;虚线字体&#xff09;-CS…

SpringBoot知识03

1、多模块项目无法启动&#xff0c;报错Failed to execute goal on project*: Could not resolve dependencies for project

【Unity】Attribute meta-data#com.google.android.play.billingclient.version 多版本库冲突

文章目录 一、背景二、问题描述三、解决方案 一、背景 1、Unity 2021.3.9f1 2、Max由6.0.1至最新版本6.1.0 二、问题描述 错误信息 Attribute meta-data#com.google.android.play.billingclient.versionvalue value(6.1.0) from [com.android.billingclient:billing:6.1.0] An…

python图像处理总结

等我有时间了&#xff0c;好好总结一下这几个图像处理包&#xff0c;为后面的研究做个铺垫 skimage包 可以用系统自带的图片&#xff0c;不用自己找图片 from skimage.io import imread, imshow from skimage import data image data.astronaut() imshow(image)后面可以拿这…

Maven环境搭建及Maven部分目录分析

一、安装Maven Maven 本身就是⼀套由 Java 开发的软件&#xff0c;所以 Maven 的运⾏需要依赖 JDK 环境。在安装 Maven 之前请 确认JDK 是否配置正确&#xff08;主要依赖 JAVA_HOME 环境变量&#xff09;。如果没有正确安装和配置 JDK &#xff0c;则运⾏ Maven 时 会出现以下…

“一键转换PNG至BMP:轻松批量处理,高效优化图片管理“

在数字世界中&#xff0c;图片格式的转换是日常工作中不可或缺的一部分。你是否经常遇到需要将PNG格式的图片转换为BMP格式的需求&#xff1f;是否在处理大量图片时&#xff0c;希望能够实现一键批量转换&#xff0c;提高工作效率&#xff1f; 首先&#xff0c;我们进入首助编…

vue前端开发自学基础,动态切换组件的显示

vue前端开发自学基础,动态切换组件的显示&#xff01;这个是需要借助于&#xff0c;一个官方提供的标签&#xff0c;名字叫【Component】-[代码demo:<component :is"ComponetShow"></component>]。 下面看看代码详情。 <template><h3>动态…

三、Qt Creator 使用

关于Qt的安装及环境配置&#xff0c;在我的上一篇《二、QT下载、安装及问题解决(windows系统)》已经讲过了。 本章节有一个重点&#xff0c;在新建 工程文件时&#xff0c;所在路径不要有中文&#xff0c;否则编译及运行程序不能正常运行。 在使用Qt Creator&#xff08;以下…

解决Spss没有创建虚拟变量的选项的问题

这个是今天用spss想创建虚拟变量然后发现我的spss没有。 然后能怎么办我就百度呗&#xff0c; 说是在扩展里连接扩展中心 天哪&#xff0c;谁能连上&#xff0c;我连不上 于是就找到了从github上下载到本地&#xff0c;然后安装到spss中 目录 解决方法 点击code 再点击D…

9.5.1 函数模板特化

函数模板 有了泛化版本比较函数&#xff0c;我们可以比较两个整数&#xff0c;两个字符&#xff0c;两个指针 6~10行&#xff0c;是一个函数模板 13~16行&#xff0c;都可以得到正常结果 22行&#xff0c;得到的结果是&#xff0c;"A001" < "A000", …

openGauss学习笔记-196 openGauss 数据库运维-常见故障定位案例-强制结束指定的问题会话

文章目录 openGauss学习笔记-196 openGauss 数据库运维-常见故障定位案例-强制结束指定的问题会话196.1 强制结束指定的问题会话196.1.1 问题现象196.1.2 处理办法 openGauss学习笔记-196 openGauss 数据库运维-常见故障定位案例-强制结束指定的问题会话 196.1 强制结束指定的…

AI剪辑助手:轻松剪辑专注创意,视频批量AI智剪的方法

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;在许多领域都展现出了强大的能力。在视频剪辑领域&#xff0c;AI剪辑助手的出现&#xff0c;给内容创作者带来了前所未有的便利。它不仅能快速、高效地完成视频剪辑工作&#xff0c;还能释放创造力。今天一起…