首页 > 其他分享 >QTreeWidget使用小案例

QTreeWidget使用小案例

时间:2023-12-22 16:46:35浏览次数:30  
标签:child1 child2 sub setText QTreeWidgetItem 案例 QTreeWidget 使用 root

一、概述

  使用QTreeWidget制作一个树形菜单。示例图:

 

二、代码示例

#include "TreeWidgetExampleWindow.h"

TreeWidgetExampleWindow::TreeWidgetExampleWindow(QWidget* parent)
    : QWidget(parent)
{
    this->setWindowTitle("TreeWidget组件");
    QVBoxLayout* vLayout = new QVBoxLayout;

    //创建TreeWidget
    QTreeWidget* treeWidget = new QTreeWidget;
    treeWidget->setColumnCount(3);// 设置列数为 3
    treeWidget->setHeaderLabels({ "LOL", "英雄","战力"}); // 设置列标签
    treeWidget->header()->setSectionResizeMode(QHeaderView::ResizeToContents); // 自适应列宽

    // 创建根节点
    QTreeWidgetItem* root = new QTreeWidgetItem(treeWidget);
    root->setText(0, "英雄联盟");
    root->setData(2, Qt::UserRole, "root_data_info");
    treeWidget->addTopLevelItem(root);

    // 创建子节点 1
    QTreeWidgetItem* child1 = new QTreeWidgetItem(root);//说明child1是root的子节点
    child1->setText(0, "德玛西亚");
    QTreeWidgetItem* child1_sub = new QTreeWidgetItem(child1);//说明child1_sub是child1的子节点
    child1_sub->setText(0, "德玛西亚之力");
    child1->addChild(child1_sub);//添加子节点
    //三级节点一级一级靠右边
    child1_sub->setText(0, "名称");
    child1_sub->setText(1, "德玛西亚");
    child1_sub->setText(2, "战力2");
    root->addChild(child1);

    // 创建子节点 2
    QTreeWidgetItem* child2 = new QTreeWidgetItem(root);//说明child2是root的子节点
    child2->setText(0, "诺克萨斯");
    QTreeWidgetItem* child2_sub = new QTreeWidgetItem(child2);//说明child2_sub是child2的子节点
    child2_sub->setText(0, "诺克萨斯之手");
    child2->addChild(child2_sub);
    child2_sub->setText(0, "101");
    root->addChild(child2);
    

    // 读取节点数据
    QTreeWidgetItem* item = treeWidget->topLevelItem(0);
    if (item) {
        qDebug() << "Root name: " << item->text(0);
        qDebug() << "Root value: " << item->text(1);
        qDebug() << "Root data: " << item->data(2, Qt::UserRole).toString();
    }

    vLayout->addWidget(treeWidget);
    this->setLayout(vLayout);

}

TreeWidgetExampleWindow::~TreeWidgetExampleWindow()
{

}

 

标签:child1,child2,sub,setText,QTreeWidgetItem,案例,QTreeWidget,使用,root
From: https://www.cnblogs.com/tony-yang-flutter/p/17921930.html

相关文章

  • Alist系列之---【使用RaiDrive把网盘挂载到本地】
    1.前提已经搭建好了Alist2.安装RaiDrive下载地址:https://www.raidrive.com/下载好之后,一路下一步安装即可,耗时可能有点长。3.配置webdav......
  • QTabWidget小案例
    一、概述编写一个QTabWidget小案例,示例图:  二、代码示例#include"TabWidgetExampleWindow.h"TabWidgetExampleWindow::TabWidgetExampleWindow(QWidget*parent):QWidget(parent){this->setWindowTitle("TabLayout布局");QVBoxLayout*vLayo......
  • electron的渲染进程使用axios时被csp安全拦截的解决方案
    1、问题出现场景脚手架用的是electron-vite,渲染进程是vue3+pinia+vue-router,http请求是使用的axios,在发起请求时发现控制台报csp问题 2、原因分析csp其实就是跨域问题,不支持非同源的资源访问,以往开发普通的vue项目时因为有脚手架里的代理,所以不会出现这种......
  • [问题记录] C# 使用NPOI操作Excel模版写入数据 - 生成文件打开时提示 "发现 XXX.xlsx
    解决方案:1.先确保原来的模版文件打开是正常的,没有提示要恢复2.用Office打开这个模版文件,另存为一个文件。用这个文件来作为模版使用。 问题描述:使用C#NPOI操作Excel模版(模版用office打开是正常的),写入数据,导出的文件打开时提示是否尝试恢复,点击“是”后,发现Excel内......
  • vue项目中使用的移动端的签名组件,纯 js 写的
    <template><section><divclass="sign-wrap"><divclass="main"><divclass="box"style="width:100%;height:100%"><!--<vue-esignref="esign&qu......
  • vue中使用Vue.extend方法仿写一个loading加载中效果
    需求描述本文我们使用vue的extend方法实现一个全屏loading加载效果,需求如下:通过命令就可以让弹框开启或关闭,比如this.$showDialog()开启,this.$hideDialog()关闭方法可以传参更改loading中的文字也可以传参更改loading背景色当然这里除了文字,背景色什么的,也可以传递更多的参......
  • Manjaro安装Redis和Redis-cli的使用
    一.Redis安装要在Manjaro上安装Redis,可以按照以下步骤进行操作:打开终端。使用以下命令更新系统软件包列表:sudopacman-Syu通过运行以下命令安装Redis:sudopacman-Sredis安装完成后,使用以下命令启动Redis服务:sudosystemctlstartredis可以使用以下命令......
  • Android应用开发长按拖拽-Flutter的LongPressDraggable控件回调函数onDraggableCancel
    onDraggableCanceled介绍LongPressDraggable的onDraggableCanceled回调在拖动被取消时触发。拖动可能会被取消,例如用户在拖动开始后移动了太快或在放置之前取消了拖动。onDraggableCanceled的使用以下是如何使用onDraggableCanceled的示例:LongPressDraggable<int>(//......
  • Python DRF基础使用01
    目录1,web应用模式(了解)2,restful风格介绍(了解)3,restful设计风格(了解)4,restful案例(了解)5,数据准备6,查询所有数据(理解)7,创建对象(理解)8,获取单个对象(理解)9,修改单个对象(理解)10,删除单个对象(理解)11,DRF魅力展示(了解)12,序列化器概述(了解)13,序列化器定义(掌握)1......
  • Python DRF基础使用02
    目录1,ModelSerializer2,fields3,read_only_fields4,extra_kwargs5,APIView之request6,APIView之Response7,APIView实现列表视图8,APIView实现详情视图(带着id请求,所以叫做详情)9,二级视图,实现列表视图10,二级视图,实现详情视图11,get_object方法(三属性三方法其中一个)12,MiXin(提......