QTreeView 设置水平滚动条

QML实现一个TreeView 在Qt5中的QtQuick.Controls 2.x中没有TreeView这个控件,而只在QtQuick.Controls 1.x中拥有这个控件。因此当我们使用高版本的QtQuick.Controls时,无法使用TreeView,因此我们必须得想办法自己实现一个TreeView。实现TreeView的最容易想到的思路就是迭代使用ListView,ListView我们是可以使用的,而TreeView实际上就是ListView套ListView(套娃),因此灵活使用ListView就能制作一个TreeView。 阅读详情

默认QTreeView的滚动条设置是Qt::ScrollBarAsNeeded.也就是默认值。不修改的话是根据需要显示滚动条的。


我在QTreeView里面添加了item item里面有文本或者点击扩展按钮扩展tree的时候,结果水平方向没有滚动条,导致部分文本不可见。

问题其实处在Column的宽度上。ScrollBar是针对整个QTreeView的Widget,也就是所有column的宽度和而言的,而不是针对于个column当中文本的长度的。

当改变column当中文本的时候。由于column的宽度没有改变,因此不会出现scrollbar滚动条,而是将column所见的内容压缩了,因此需要手动设置column的宽度。

添加一个item之后或者点击扩展按钮的时候,需要调用resizeColumnToContents或者是直接setcolumnwidth。需要修改的地方有添加item的时候。展开或者折叠item的时候在对应的slot函数里面实现。


  1. void test::DevTreeClicked(const QModelIndex &index)  
  2. {  
  3.     ui.DevTreeView->resizeColumnToContents(0);  
  4. }  

  1. QObject::connect(TreeView,SIGNAL(clicked(const QModelIndex&)),this,SLOT(DevTreeClicked(const QModelIndex &)));  
  2. QObject::connect(TreeView,SIGNAL(collapsed(const QModelIndex&)),this,SLOT(DevTreeClicked(const QModelIndex &)));  
  3. QObject::connect(TreeView,SIGNAL(expanded(const QModelIndex&)),this,SLOT(DevTreeClicked(const QModelIndex &)));  

只要知道ScrollBar是针对于整个column而言。而不是针对content而言就好解决这个问题了
Qt QTreeWidget详解 Qt中实现树形结构可以使用QTreeWidget类,也可以使用QTreeView类,QTreeWidget继承自QTreeView类。 一、常用属性(可通过设计器直接设置) 函数 作用 header()->setVisible(false); 设置标题头是否显示 header()->setDefaultSectionSize(200); 设置标题头默认的尺寸 void setSortingEnabled(bool enable); 设置点击标题头排序 void set 阅读详情

相关推荐

QTreeView第一列自适应

通过setStretchLastSection(bool stretch)可以设置最后一列自适应,对于QTreeView,stretch默认为true。但有时候我们需要设置第一列自适应,比如文件浏览器,共有名称、大小和修改日期三列,大小和日期的宽度几乎是固定的,但名称却可长可短,此时我们希望在窗口大小变化时,第一列的宽度能自动缩放,第二列和第三列的宽度保存不变,而且要支持鼠标拖动调整列宽。

草上爬的博客 1954

QTreeView和scrollbar窗口自适应

默认QTreeView的滚动条设置是Qt::ScrollBarAsNeeded.也就是默认值。不修改的话是根据需要显示滚动条的。 我在QTreeView里面添加了item item里面有文本或者点击扩展按钮扩展tree的时候,结果水平方向没有滚动条,导致部分文本不可见。 问题其实处在Column的宽度上。ScrollBar是针对整个QTreeView的Widget,也就是所有colum

groundhappy的专栏 5283

QT QTreeView 电脑磁盘分支 以及style

QT QTreeView1 ui界面添加控件2 代码编辑3 选择分支4 效果 1 ui界面添加控件 2 代码编辑 /** * @brief MyDir::showTreeView * 展示TreeView */ void MyDir::showTreeView() { QModelIndex index; //QModelIndex类用于定位数据模型中的数据 model = new QDirModel; //模型 model-&g

光顶术士的博客 378

QTreeView不能按子项内容长度自动出现水平滚动条及滚动不理想问题解决

QTreeView不能按显示的内容自动出现水平滚动条及水平滚动不理想问题的解决

danshiming的博客 3292

treeview滚动条

主要解决了treeview中数据量大的时候 ,无法显示出整个数据链,因此将默认选中的节点改为最顶部节点,并显示选中效果。

深入AOSP构建系统:从BUILD_FINGERPRINT的生成逻辑,看如何定制你的Android设备标识

本文深入解析AOSP构建系统中的设备指纹生成机制,详细介绍了BUILD_FINGERPRINT的生成逻辑及其在Android设备中的关键作用。通过分析多个指纹属性的区别与联系,以及如何定制设备标识,帮助开发者更好地理解和掌握Android系统构建过程。

weixin_27017211的博客 217

项目中遇到QTreeWidget实现的目录树,水平滚动条没有随着展开的内容真多而出现的问题

方法有两种: 方法一: m_leftTreeWidget->header()->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); m_leftTreeWidget->header()->setSectionResizeMode(0, QHeaderView::Resiz...

slfkj的博客 1491

OpenV2X 车路协同开源平台 Columbia 版本正式发布!

OpenV2X车路协同开源平台Columbia 版本正式发布!

weixin_65571684的博客 1198

QTreeView/QTreeWidget自动显示滚筒条

默认QTreeView的滚动条设置是Qt::ScrollBarAsNeeded.也就是默认值。不修改的话是根据需要显示滚动条的。 我在QTreeView里面添加了item item里面有文本或者点击扩展按钮扩展tree的时候,结果水平方向没有滚动条,导致部分文本不可见。 问题其实处在Column的宽度上。ScrollBar是针对整个QTreeView的Widget,也就是所有column的宽度...

aerbeisishan2008的博客 2342

QGIS基于快鸟(QuickBird)影像统计小麦种植面积

​01数据情况 本次选用某地4月份快鸟(QuickBird)影像为例,使用QGIS演示提取小麦播种情况,并按照200米*200米分区计算种植面积的过程。 注:本文对应的操作视频作为今天第二篇推送同时发布,习惯看视频的朋友可以点击观看。 附数据压缩包: 链接:https://pan.baidu.com/s/1JVUS8uAOR61RxC1n9Or9_w 提取码:qgis 含快鸟影像QB_subset.tif和200*200米分区矢量图层200Mgrid.shp。 ...

QGISClass的博客 1979

【FPGA】AD9694调试注意事项

基于FPGA的AD9694设计及其注意事项,包括同步的设计注意事项

weixin_41246509的博客 2900

QTreeView冻结列

【代码】QTreeView冻结列。

qq_43913466的博客 241

SpringCloud 2025王炸更新!GraalVM原生镜像启动速度提升90%实战

在当今云原生和Serverless架构盛行的时代,应用的启动速度已成为衡量技术栈竞争力的关键指标。传统SpringCloud应用由于依赖JVM的动态类加载、反射等机制,启动时间通常超过30秒,在Kubernetes滚动更新和函数计算场景下成为显著性能瓶颈。2025年,SpringCloud迎来里程碑式更新,通过深度集成GraalVM原生镜像技术,实现了启动速度提升90%的惊人突破,让SpringCloud应用正式进入"秒级启动"时代。

小筱在线博客 1098

PyQt5中设置QtreeWidget水平滚动条

PyQt5中设置QtreeWidget水平滚动条 这个问题,困惑我好一段时间,网上找了很多资料,各种尝试都没解决,隐隐约约在一个论坛中一个作者提到一句话,才得到解决。问题描述如下: 开发过程中,有时候会去开发树形展示的界面,尤其文件管理系统时。由于pyqt5 单独python的文档比较少,大多是基于C++写的文档,所以大家在开发的时候,基本都是经验加摸着石头过河的方式在python中开发Qt界面...

zhangji 3508

uniapp - 应用软件在运行时,未见向用户告知权限申请的目的,向用户索取(存储、相机、电话)等权限,不符合华为应用市场审核标准(uniApp开发安卓APP上架应用市场审核被拒绝驳回,详细解决方案)

uniApp应用软件在运行时,未见向用户告知权限申请的目的,向用户索取(存储、相机、电话)等权限,不符合华为应用市场审核标准。uniapp vue2 vue3解决软件在运行时,未见向用户告知权限申请的目的,华为等上架被拒问题,关于华为应用市场上架需要同步告知使用权限的解决方案,uniApp应用软件在运行时,不符合华为应用市场审核标准。解决方案合集!app上架-您的应用在运行时,未同步告知权限申请的使用目的,向用户索取(相机)等权限,不符合华为应用市场审核标准。华为应用市场审核新规(未同步告知权限申请的使用目

🏆 前端领域优质创作者 4164

华为OD机试新系统真题 【查找最佳充电策略】

华为OD机试 新系统真题【查找最佳充电策略】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【查找最佳充电策略】多语言题解。

qq_45776114的博客 431

QTreeView树形控件自动显示水平滚动条(resizeColumnToContents())

本文主要总结Qt中QTreeView树形控件自动显示水平滚动条内容。 在Qt中,是默认根据需要显示水平和垂直滚动条的。但是我们发现实践中只能自动显示垂直滚动条,而水平滚条无法自动显示,在显示窗口中多余的内容用省略号“...”代替。 进过查找资料,博主发现,之所以无法自动显示垂直滚动条,是因为树形控件的列宽度比跟显示的内容要宽,而自动显示水平滚动条是内容超出列宽度才会出现。 1.1核心函数讲解...

净无邪博客 6234

Unity零基础到入门 ☀️| 基础知识入门篇章,看完就可以做游戏啦! | 寻找C站宝藏

Unity入门基础知识。本篇文章介绍了关于Unity入门的一些基础知识,包括基本概念和使用实例。简单易上手,轻松实现Unity入门操作!

努力前行,总会成为自己心中的那道光 1万+

qtreeview控件水平滚动条自动出现方法与避坑

这是在heap内存监视模式下,调试出来的教训,一定要注意这个问题(如果直接调试模式,程序可能不会崩,但是监视内存,也能看出来item所在内存被全部刷为0Xddddddd...了,而heap内存监视模式下是全部刷为0x0000...的,所以程序一运行到那儿就会自动断住了,才能发现问题)。,expandAll函数的时候,就不让那个槽函数执行,而是最后调一下 ui->treeView->resizeColumnToContents(0);比较好的做法是,自己。

biao2488890051的博客 1443

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

PyQt6 QTreeView树视图

QTreeView类,它是树控件的基类,使用时,必须为其提供一个模型来与之配合。拖放操作期间打开树中项目之前的延迟时间。是否显示用于展开和折叠顶级项目的控件。项目是否应使用所有列显示键盘焦点。所有项目是否具有相同的高度。所选项目的部分是否突出显示。是否可以通过双击扩展项目。是否可调节最后一列的宽度。项目是否可由用户展开。标题列宽联动调整大小。标题可调节的最小尺寸。

java1234的博客 1991

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Qt QTreeView 常用属性及操作方法

QTreeView 常用属性以及使用方法

weixin_54018178的博客 2096

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

QTableView、QTreeView和QListView各自的区别

您可以根据数据的结构和需求选择适合的视图组件来展示数据,以提供更好的用户体验和功能。QTableView、QTreeView和QListView是Qt框架中用于显示数据的三种不同的视图组件。QTreeView是一个树形视图,用于显示层次结构的数据,类似于文件资源管理器的目录结构。QListView是一个列表视图,用于显示一维的列表数据,类似于文件列表或邮件列表。适用于需要显示和编辑具有规则结构的表格数据的场景,例如数据库查询结果、电子表格等。适用于需要显示一维的简单列表数据,例如联系人列表、文件列表等。

电脑管家 1711

ScrollViewe滚动区域中TreeView的鼠标滑轮事件及水平滚动条不显示

水平滚动条不显示 //水平滚动条不显示 <ScrollViewer HorizontalScrollBarVisibility="Disabled " Name="scrol" Height="545" Width="220"> <TreeView ScrollViewer.HorizontalScrollBarVisibility="Disabled" Name="t...

皮卡丘丘丘~~~ 1067

向QAbstractItemView子类如:QTreeView、QTableView等子项单元格插入窗体小部件的功能实现(第3种方法)

向QAbstractItemView子类如:QTreeView、QTableView等子项单元格插入窗体小部件的功能实现(第3种方法)

danshiming的博客 1543

QT笔记- 如何判断窗口小部件是否自动出现(或隐藏)了滑条?

如果使用的小部件是派生自类QAbstractScrollArea的,比如QTreeView,则在窗口内容过多或窗口宽高过小时,窗口或小部件边缘会自动出现水平或垂直滑条,过大时滑条会自动消失,那么在编程中我们如何知道此刻是否出现了滑条?有什么函数来提示吗?以下函数可以解决这个问题: this->horizontalScrollBar()->isVisible(); 可在QAbstractScrollArea的任意派生类中调用它! ...

qq_43058397的博客 849

向QTableView、QTreeView单元格插入窗体小部件的功能实现

向QTableView单元格插入窗体小部件的功能实现

danshiming的博客 5414
上一篇: gtest安装与使用示例
下一篇: QTime成员函数的用法
Maybe______
博客等级 码龄10年 26粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值