引言

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

详情

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);//将箭头放在右边,所有的控件都会从右向左排列

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

qt中QTreeWidget控件的使用相关推荐

  1. QT中树控件QTreeView开发实例

    转自:http://mobile.51cto.com/symbian-268700.htm 本文讲解了QT中树控件QTreeView开发实例,对于QTreeView没有过多的讲解,那么不说废话了,看代 ...

  2. 【QT 基础教程 四】QT中的控件与事件

    概要:这期主要讲解Qt中的控件和事件的概念.然后,我还会简单介绍一些常见的控件以及事件. Qt控件是什么? Qt 控件又称组件或者部件,指用户看到的所有可视化界面以及界面中的各个元素.比如按钮.文本框 ...

  3. qt中创建控件布局以及删除原有布局和控件

    引言 当根据数据来创建控件并布局时,如果数据更新,那么之前创建的控件便需要删除后重新创建布局.该文主要说明将原来的布局和控件删除,重新创建并布局. 示例 先看一下ui文件: 下面是实现代码: void ...

  4. qt中树形控件QTreeWidget的项点击后获取该项的文本

    概述 通过点击树形控件的项,可以得到被点击的树形控件的文本,使用树形控件的信号itemPressed与所在类的槽函数绑定,通过传递参数QTreeWidgetItem和列column,在绑定的槽函数中得 ...

  5. Qt中Qlabel控件实现文本多种颜色样式显示,支持换行。

    在Qt文本开发中,需要用到文本不通颜色显示样式,有的开发者可能会选择一种颜色一个Qlabel控件,这样是可以实现相应的效果,但是会出现文本长度不确定,导致换行问题. 下面介绍一种在同一个Qlabel控 ...

  6. [Qt入门]QTreeWidget控件创建

    #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidg ...

  7. qt中提升控件的操作

    我的代码里面自己写了一个类myview,继承自QGraphicsView,然后就把拖到界面上的QGraphicsView控件通过提升控件的方式替换成自己的myview类. 先在工具栏拖一个QGraph ...

  8. Qt中的控件随着窗口大小改变而改变和充满窗口

    方法一 通过width,height方法获取窗口的实际大小 QWebEngineView *ww=new QWebEngineView(this);this->setCentralWidget( ...

  9. qt中设置控件不能使用

    情景描述 在初始化时,使其action置灰,不能操作,随后将action设置为可以操作. 方法 直接上代码,通过下面的代码可以实现将action设置为置灰状态. ui->openAction-& ...

最新文章

  1. linux互斥锁和条件变量,如何理解互斥锁和条件变量?
  2. python并发编程:阻塞IO
  3. RocketMQ:消息存储机制详解与源码解析
  4. 用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变
  5. OxyPlot 导出图片及 WPF 元素导出为图片的方法
  6. html中属性的作用,html的标签中 unselectable=on 属性的作用
  7. 作者:赵国栋(1974-),男,中关村大数据产业联盟秘书长,北京大数据研究院副院长...
  8. 飞鸽传书2007绿色版
  9. 抽象工厂模式 -- 大话设计模式
  10. 5G商用正式启动:最全套餐资费详情都在这里了
  11. webservice发布问题,部署iis后调用不成功
  12. AllWinner T113交叉工具链篇
  13. java 批量下载ftp文件_JAVA实现FTP文件批量下载文件到本地文件夹
  14. React中实现防抖功能的两种方式
  15. 软件扫描出rsh漏洞,但是并无安装rsh服务,原因是为何?
  16. 数字功放-耐福NTP功放芯片详细性能概述
  17. 1438oracle,一次ora-01438错误的处理
  18. matlab from workplace,关于使用From workspace的问题
  19. OPEN(SAP) UI5 学习入门系列之二: 最佳实践练习(下)
  20. 计算机考研零基础英语怎么复习,英语零基础怎么考研 上岸学姐来教你

热门文章

  1. 无接触式智能服务 用“减法”重塑企业前台场景
  2. 针对数据库连接池到DRDS连接探活的优化
  3. 在DataWorks标准模式下统计个人账号使用资源情况
  4. 测试工程师不懂AI,还有未来吗?
  5. Kubernetes的共享GPU集群调度 1
  6. AliOS Things网络连接技术概述
  7. 95后热搜哪些事,夸克用AI引擎发布2021年度关键词
  8. 李飞飞:阿里云数据库已做好全面服务政企市场的准备
  9. 避坑!使用 Kubernetes 最易犯的 10 个错误
  10. 痛!做C#半年,挣的不如做AI1个月?”看到第二句泪目……