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

这篇具有很好参考价值的文章主要介绍了【QT】多层QTreeWidget与QStackedWidget的关联操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

通过点击多层QTreeWidget来控制QStackedWidget中的page页面切换
【QT】多层QTreeWidget与QStackedWidget的关联操作,QT,qt,命令模式,开发语言
【QT】多层QTreeWidget与QStackedWidget的关联操作,QT,qt,命令模式,开发语言
【QT】多层QTreeWidget与QStackedWidget的关联操作,QT,qt,命令模式,开发语言

  1. treeWidget设计
    【QT】多层QTreeWidget与QStackedWidget的关联操作,QT,qt,命令模式,开发语言
    【QT】多层QTreeWidget与QStackedWidget的关联操作,QT,qt,命令模式,开发语言

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. 关联
    【QT】多层QTreeWidget与QStackedWidget的关联操作,QT,qt,命令模式,开发语言
    【QT】多层QTreeWidget与QStackedWidget的关联操作,QT,qt,命令模式,开发语言
    选择on_treeWidget_itemClicked()函数
    重点是使用setCurrentWidget()和 判断语句
item->text(column) == "3班" 
&& item->parent() && item->parent()->text(column) == "自动化专业" 
&& item->parent()->parent() &&      item->parent()->parent()->text(column) == "2020级"

完整语句:文章来源地址https://www.toymoban.com/news/detail-798874.html

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);
    }

}

到了这里,关于【QT】多层QTreeWidget与QStackedWidget的关联操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习文档:QT QTreeWidget及其代理

    学习文档:QT QTreeWidget及其代理 1. QT QTreeWidget简介 QT QTreeWidget是QT框架中的一个重要组件,用于显示树形数据结构。它提供了一种方便的方式来展示并操作带有层次关系的数据。QTreeWidget可以显示包含多个列的树形视图,每个项目可以有多个子项目,从而创建一个多级树形结构

    2024年02月20日
    浏览(24)
  • QT使用QTreeWidget控件制作多级折叠菜单

    记录项目中实际用到的多级折叠菜单实现方式:项目代码简化版( 亲测可用 ) 开发环境:VS2015+QT5.9.1 多级菜单(左右共两个图标,中间为文字,左图标为固定静态图标,右图标为折叠/展开动态图标),格式如下: 图片 菜单标题      图片            系统配置       

    2024年02月09日
    浏览(36)
  • QT QTreeView\QTreeWidget控件 使用详解

             本文详细的介绍了QTreeView、QTreeWidget控件的各种操作,例如:新建界面、QTreeWidget、QTreeView、控件布局、设置列、设置宽高、设置列表头、设置复选框、设置图标、添加树、删除树、查找树、修改树、设置选中、树排序、事件、信号、槽函数、添加节点、默认选中

    2024年02月15日
    浏览(33)
  • QT实现多级下拉列表导航菜单,可折叠(QTreewidget实现)

    目录 创建多级列表 在ui中拖入一个QTreewidget控件。 双击该控件,打开编辑树窗口部件。​编辑​编辑 进行列表控件设置: 在项目前添加图标: 效果: QT实现多级下拉列表,可折叠 做项目的时候需要实现一个可折叠的多级下拉列表,用QTreewidget就可以实现,而且直接在ui文件

    2024年02月16日
    浏览(50)
  • QT 项目视图(QListView&QTreeView&QTableView)和项目部件(QListWidget&QTreeWidget&QTableWidget)详解

    目录 一、Qt 项目视图(Item Views)         1.QListView 2.QTreeView 3.QTableView 二、Qt 项目部件(Item Widgets) 1.QListWidget 2.QTreeWidget 3.QTableWidget 一、Qt 项目视图(Item Views)          控件名称依次解释如下: List View:清单视图 Tree View: 树视图 Table View:表视图 Column View: 列视图 Undo Vie

    2024年01月20日
    浏览(41)
  • QT 多层视图(视图叠加显示)

    之前做Mac应用开发,视图层是可以上下叠加显示的,然后回到QT这边开发,发现QT的布局上不能叠加显示,于是写了个简单的可以叠加QWidget的小Demo 这是调用的代码: 效果: 可以看出AAAAAA和BBBBB在最底层,中间层是一个半透明的灰色层,最上面层显示CCCCC。 AAAAAA和BBBBB被中间层

    2024年02月11日
    浏览(33)
  • C++ Qt开发:使用关联容器类

    当我们谈论编程中的数据结构时,顺序容器是不可忽视的一个重要概念。顺序容器是一种能够按照元素添加的顺序来存储和检索数据的数据结构。它们提供了简单而直观的方式来组织和管理数据,为程序员提供了灵活性和性能的平衡。 Qt 中提供了丰富的容器类,用于方便地管

    2024年02月05日
    浏览(38)
  • C++ Qt开发:SqlRelationalTable关联表组件

    Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍 SqlRelationalTable 关联表组件的常用方法及灵活运用。 在上一篇文章中详细介绍了

    2024年02月04日
    浏览(36)
  • Git和Github操作命令及关联远程库

    前言 一、Git 1. 环境配置 2. 基本操作 3. 版本切换 4. 忽略文件 5. 分支 6. 命令行 --tag 7. 查看远程 8. 添加/移除远程仓库 9. 从远程仓库获取代码 二、Github/Gitee 1. 在Github/Gitee中创建一个空的库 2. 创建ssh密钥 3. 查看ssh密钥 4. github设置密钥 5. 绑定github 6. 绑定远程仓库 7. 查看

    2024年04月15日
    浏览(32)
  • QT设置二级菜单 QT获取命令行参数 QT获取系统环境变量 QT QStatusBar showMessage的坑

    提示: 可以使用 qss 或者一些接口函数对 QMenu 和 QAction 进行美化 在操作过程中,最开始使用的QT的GUI程序,因为GUI程序默认的标准输出是QTCREATOR的应用程序输出窗口,所以在命令行窗口是看不到的,但是这也是可以配置的qt在GUI显示时,将调试信息输出到控制台的设置。以上

    2023年04月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包