qt中QTreeWidget控件的使用

引言

在按照项目设计的样式来实现的时候,发现了一些问题,幸运的是最终找到了解决的方法。

详情

1.QTreeWidget设置列数和隐藏头(这里指的是有1所在的那个部位)

ui->treeWidget->setColumnCount(1);//设置有1列ui->treeWidget->header()->hide();//设置隐藏头

2.设置某一项的高度

QTreeWidgetItem *rootItem = new QTreeWidgetItem(ui->treeWidget);//创建QTreeWidget的项
rootItem->setText(0,QStringLiteral("公司"));//设置项的文本
rootItem->setFlags(Qt::ItemIsEnabled|Qt::ItemIsSelectable);//设置项的属性,可选择,可使用
rootItem->setIcon(0,QIcon(":/new/prefix1/images/logo.png"));//设置项的图标
rootItem->setSizeHint(0,QSize(0,70));//设置行高

3.设置只隐藏根节点的箭头

ui->treeWidget->setRootIsDecorated(false);//设置只隐藏根节点的箭头

4.通过向ui文件中拖入控件QStackWidget,先根据程序运行中得到的数据的组数,在QStackWidget中创建几组窗口,用于与QTreeWidget窗口中的项绑定,实现点击QTreeWidget来切换不同的堆栈窗口。

    //创建窗口,窗口中创建滚动区域,将窗口添加到堆栈窗口中rootWidget = new QWidget();QScrollArea *rootArea = new QScrollArea(rootWidget);rootArea->setGeometry(0,0,677,552);rootArea->setWidgetResizable(false);//滚动区域的窗口QWidget *scrollWidget = new QWidget();scrollWidget->setGeometry(0,0,677,600);scrollWidget->setMinimumSize(677,552);rootArea->setWidget(scrollWidget);QHBoxLayout *hLayout = new QHBoxLayout(rootWidget);hLayout->addWidget(rootArea);hLayout->setContentsMargins(0,0,0,0);hLayout->setSpacing(0);//设置窗口的背景色rootWidget->setPalette(QPalette(Qt::yellow));rootWidget->setAutoFillBackground(true);    //项堆栈窗口中添加创建好的窗口ui->stackedWidget->addWidget(rootWidget);//绑定树状控件的itemclicked信号,实现点击某一个项,跳转到不同的堆栈窗口connect(ui->treeWidget,&QTreeWidget::itemClicked,this,&ImDialog::onCurrentWidget);

5.设置QTreeWidget的项的高度,可以直接采用项的函数setSizeHint,也可以按照下面这种方式来实现。
先封装另一个类,类中重写函数sizeHint。

#ifndef MYDELEGATE_HPP
#define MYDELEGATE_HPP#include <QApplication>
#include <QStyledItemDelegate>/********************************************======功能描述:=======重写sizeHint
********************************************/class Delegate : public QStyledItemDelegate
{
public:explicit Delegate(QObject *parent = nullptr) :QStyledItemDelegate(parent){}QSize sizeHint(const QStyleOptionViewItem &option,const QModelIndex &index) const override {return QStyledItemDelegate::sizeHint(option, index)+ index.data(Qt::UserRole).toSize();}
};#endif // MYDELEGATE_HPP

使用的时候,像下面这样使用。

ui->treeWidget->setItemDelegate(new Delegate(this));//可以直接这样用
rootItem->setData(0,Qt::UserRole,QSize(0,40));//可以直接这样用

便能设置QTreeWidget的项的高度。其中rootItem是QTreeWidgetItem类的指针。
6.QTreeWidget将项的箭头放在右边

ui->treeWidget->setLayoutDirection(Qt::RightToLeft);//将箭头放在右边,所有的控件都会从右向左排列

这样所有的箭头都在右边,貌似项的文本也会右对齐。
以上只是记录了大体思路和部分功能函数,仅供参考。

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

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

相关文章

SecureCRT 免安装、绿色版、免费版本

SecureCRT远程连接Linux服务器 文章目录1. 下载软件2. 解压软件3. 双击运行4. 选择SecureCRT5. 图标点击&#xff0c;输入用户名6. 添加密码&#xff0c;点击确定7. 连接成功1. 下载软件 链接https://pan.baidu.com/s/1vv40uI_0uwIagPGm7FS9_g 提取码t32h 2. 解压软件 3. 双击…

qt中QMultiMap获取键值

概述 QMultiMap获取键值分为两种&#xff0c;一种是获取所有的键值&#xff0c;包含重复的键值&#xff0c;一种是获取不重复的键值&#xff0c;下面记录一下。 1.获取键值 使用函数values(). QMultiMap<int,stuDepart> bookMap; QList<int> levels bookMap.val…

GitHub重大更新即将加入免费软件包管理服务;钉钉社区因出现违规内容将停更整改一个月;Uber上市,定价为45美元……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go永安行共享电动汽车&#xff…

SecureCRT 文件下载上传

SecureCRT远程连接Linux服务器 文章目录1. 点击SecureFX图标2. 填写密码3. 窗口简要说明4. 上传文件5. 下载文件6. 第二种方案(建议使用)&#xff1a;7. 拖拽文件或目录8. 效果图1. 点击SecureFX图标 2. 填写密码 3. 窗口简要说明 4. 上传文件 5. 下载文件 6. 第二种方案(建议使…

qt中关于按钮的click()函数卓见

概述 按钮有一个基类QAbstractButton&#xff0c;这个类中有一个函数click(),j几乎所有的函数都继承了这个类QAbstractButton&#xff0c;同时这个函数click()是一个公有的槽函数&#xff0c;也就是意味着所有的子类都可以调用这个函数。而这个click&#xff08;&#xff09;函…

《复联4》| 生活需要漫威这块糖

戳蓝字“CSDN云计算”关注我们哦&#xff01;漫威电影宇宙&#xff0c;历时11年&#xff0c;经历了21部电影&#xff0c;终于迎来了最终章。有人问如果没看过复联1、2、3可以去看吗&#xff1f;只看过钢铁侠没接触过复联可以去看吗&#xff1f;......看当然是可以看的&#xff…

企业实战02:Oracle数据库的安装和卸载

Oracle数据库专栏 文章目录一、 Oracle安装1.1. Oracle下载链接&#xff1a;1.2. 解压到一个文件夹中1.3. 百度云解压包&#xff1a;二、Oracle安装流程2.1. 以管理员身份运行2.2. 下图忽略2.3. 开始安装2.4. 选择-【是】2.5. 不勾选邮箱2.6. 选择【是】2.7. 选择创建和配置数据…

qt中在QMultiMap中删除自定义数据类的元素

引言 当我们使用QMultiMap的remove函数来删除容器中的某一个元素时&#xff0c;若是容器中存放的是基本数据类型&#xff0c;则程序编译的时候没有任何问题&#xff0c;但是当容器中存放的是自定义的数据&#xff0c;这时若是C基础比较扎实的&#xff0c;应该不会出现编译报错…

10 种最流行的 Web 挖掘工具 | 程序员硬核评测

戳蓝字“CSDN云计算”关注我们哦&#xff01; 程序员硬核评测&#xff1a;客观、高效、不说软话。无论是技术质量、性能水平&#xff0c;还是工具筛选&#xff0c;一测便知&#xff01;作者 | prowebscrapers blog译者 | 高级农民工责编 | 胡巍巍本文经授权转载自高级农民工互…

企业实战03:Oracle数据库_用户和表空间

Oracle数据库专栏 命令后面可以不加;分号 SQL语句后面一定要加;分号 文章目录用户和表空间2-1 使用系统用户登录Oracle系统用户2-2 Oracle用户和表空间之查看登录用户2-3 Oracle用户和表空间之启用scott用户2-4 练习题2-5 Oracle用户和表空间之表空间概述理解表空间&#xff1a…

qt获取QString中第一个汉字

概述 一串汉语中获取这串汉语中的第一个汉字。采用的方法front(). QString str(QStringLiteral("李数"));QString strText str.front();

Kubernetes精华问答 | K8s架构和组件是怎样的?

kubernetes&#xff0c;简称K8s&#xff0c;是用8代替8个字符“ubernete”而成的缩写。是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高效&#xff08;powerful&#xff09;,Kubernetes提供了应…

企业实战01:Oracle数据库概述

Oracle数据库专栏 文章目录1 用户与表空间1.1 用户1.2 表空间2 表与约束2.1 表2.2 约束在表中的作用3 约束种类4 查询语句4.1 查询的作用1 用户与表空间 1.1 用户 安装Oracle之后的系统用户有哪些&#xff1f;如何通过他们登陆Oracle数据库&#xff1f; 1.2 表空间 所登录数…

qt设置模态对话框并设置对话框的位置

引言 当对话框弹出的时候&#xff0c;其它的操作不能进行&#xff0c;这个对话框就是模态对话框&#xff0c;非模态对话框弹出的时候&#xff0c;其它的操作依旧可以做。以上就是通俗的理解模态对话框与非模态对话框。下面实现当模态对话框弹出的时候&#xff0c;设置弹出的位…

PLSQL 设置布局

前言:设置符合自己的PL/SQL布局 文章目录1. 设置符合自己风格的布局2.【Windows】-【Save Layout】1. 设置符合自己风格的布局 2.【Windows】-【Save Layout】

苹果应用商店反垄断案败诉,市值蒸发500多亿美元;脸书杠上了土耳其政府;Nutanix 扩展多云产品组合……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go新款iPhone XR各种色系&#…

qt中设置QCheckBox的文本与勾选框之间的距离

引言 项目中需要设置QCheckBox的文本与勾选框之间的距离&#xff0c;还有需要将勾选框设置的大一点&#xff0c;不是使用原始大小的勾选框。花了一点时间才知道如何实现。现在记录一下。 示例 我是通过样式表实现的文本与勾选框之间的距离&#xff0c;以及勾选框的大小。下面…

微服务化后缓存怎么做?

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;作者&#xff1a;cnstonefang转自&#xff1a; 方丈的寺院摘要最近接手的代码中遇到几…

企业实战04:Oracle数据库_管理表

Oracle数据库专栏 命令后面可以不加;分号 SQL语句后面一定要加;分号 文章目录管理表3-1 Oracle管理表之认识表3-2 Oracle管理表之数据类型3-3 练习题3-4 Oracle管理表3-5 Oracle管理表之修改表3-6 练习题3-7 Oracle管理表之删除表管理表 本章主要介绍数据类型&#xff0c;以及…

qt中解析json字符串的时候出现错误missingNameSeperator

概述 当解析json字符串&#xff0c;编译代码的时候没有问题&#xff0c;但是当程序调式运行到解析json字符串的时候&#xff0c;即这句&#xff1a; QJsonParseError parseError;QJsonDocument doc QJsonDocument::fromJson(byteArray,&parseError);if (!doc.isNull() &…