现象

当树视图中的子项内容很长时,即比树视图可见的水平表头宽都长(宽)时,QTreeView水平滚动条不会自动出现,即使通过如下代码设置树视图的水平滚动条策略为Qt::ScrollBarAlwaysOn也不行:

m_pLayerTreeView->setHorizontalSrollBarPolicy(Qt::ScrollBarAlwaysOn);

现象如下:

树视图水平滚动策略为Qt::ScrollBarAsNeeded时的效果

树视图水平滚动策略为Qt::ScrollBarAlwaysOn时的效果

可以看到,树视图中的子项内容很长时,即比树视图可见的水平表头宽都长(宽)时,QTreeView水平滚动条不会自动出现,即水平滚动条出现了,滚动它也不能全部显示右侧的内容,即水平滚动条滚动最右边,树视图子中的内容依然显示不全。

解决方法

解决方法如下代码所示:

m_pLayerTreeView = new QTreeView(this);
auto pScrollArea = new QScrollArea(this);
pScrollArea->setWidget(m_pLayerTreeView);/* 设置pScrollArea可以通过布局器来调整大小。该属性值默认设置为false,如果该值为false,则外层布局器改变大小
时,pScrollArea不会自动改变大小以适应布局器
*/
pScrollArea->setWidgetResizeable(true); // 注意:一定要调用用setMinimumSize函数来设置树视图的最小尺寸,否则会产生前文树视图自己滚动条同样的问题
m_pLayerTreeView->setMinimumSize(300, 600);

也就是说要实现QTreeView水平滚动条按显示内容水平占据的范围自动出现和滚动,则必须创建一个

QScrollArea对象,然后将树视图对象通过QScrollArea对象的setWidget加入到它里面才行,上述代码效果如下:

一般地:当采用上述方法时,要用如下代码将树视图的垂直和水平滚动条禁止显示,否则QScrollArea对象和树视图对象都显示滚动条会很丑,客户也感觉到莫名其妙,客户会想:到底用哪个滚动条呢?

m_pLayerTreeView->setHorizontalSrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_pLayerTreeView->setVerticalSrollBarPolicy(Qt::ScrollBarAlwaysOff);

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

  1. 两table水平滚动条级联滚动(同步滚动)。 table1放标题,table2放内容。

    //table1=head和table2=body水平滚动条级联滚动 $(document).ready(function () { $("#bodyPanel").scroll( ...

  2. table内容超长自动隐藏,鼠标放置后浮动显示全部内容

    目录 问题描述 解决思路 相关代码 1.限定td的宽度 2.内容特殊处理 3.全局指定动态指定css样式 4.效果如下 延伸 贴两个关于rem/em/px介绍的参考文献 问题描述 有的时候table作 ...

  3. dedecms 漏洞_织梦dedecms文档内容页自动关联tag标签加入内链的方法_dedecms_CMS教程...

    效果: 实现教程 1.后台-系统-核心设置-关键字替换,选择[是] 2.后台-系统-其他选项-关键词替换次数,填[1]或者[0] 1:表示文档内容里有多个关键词,只让1个是内链 0:表示文档内容里有多 ...

  4. 【音频处理】Melodyne 选择工具使用 ( 主工具简介 | 修改音高 | 自动吸附 | 音符长度修改 | 长度自动吸附 | 设置音符分离线 | 设置片段分离线 )

    文章目录 一.主工具简介 二.选择工具 | 修改音高 三.自动吸附 四.修改音符长度 五.修改音符长度自动吸附 六.音符分离线设置 七.设置片段分离线 一.主工具简介 主工具 是 主工具栏 中的 66 ...

  5. WCF传送大数据时的错误“ 超出最大字符串内容长度配额”

    格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://tempuri.org/ 进行反序列化时出错: GetLzdtArticleResult.InnerException 消息是&qu ...

  6. 读取 XML 数据时,超出最大字符串内容长度配额 (8192)

    格式化程序尝试对消息反序列化时引发异常: 尝试对参数 http://www.thermo.com/informatics/xmlns/limswebservice 进行反序列化时出错: Process ...

  7. IIS请求筛选模块被配置为拒绝超过请求内容长度的请求

    HTTP错误404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求,原因是Web服务器上的请求筛选被配置为拒绝该请求,因为内容长度超过配置的值(IIS 7 默认文件上传大 ...

  8. HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求

    为什么80%的码农都做不了架构师?>>>    HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求. 问题:HTTP 错误 404. ...

  9. HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求。(上传文件长度问题)

    HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求. 问题:HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容 ...

最新文章

  1. ACM入门之【最小生成树】
  2. mysql强制禁止使用索引_MYSQL强制使用索引和禁止使用索引
  3. JavaScript-操作DOM对象-获得dom节点
  4. 托雷基亚vs_奥特曼:上海英雄魂展来袭,托雷基亚和泰迦等身雕塑国内首秀,泽塔CV压轴...
  5. Light OJ 1078
  6. PHP的面向对象模型(转贴)
  7. linux邮件客户端软件,适用于Linux的4款最佳电子邮件客户端 | MOS86
  8. 计算机音乐与制谱,电脑音乐编辑、制谱与视唱练耳一本通
  9. python脚本编程100例_python 100例 (持续更新)
  10. Android 开发 DNK开发将.c文件打包成os
  11. 60+张PPT,教你如何搭建Spark离线数仓!
  12. 24小时365天不间断服务
  13. 信捷PLC 批量传送位 MOV DMOV QMOV
  14. 计算机英语朗读音频,新课标小学英语阅读精选(MP3+中英字幕) 第72期:电脑
  15. php rewind函数,函数rewind的作用是什么
  16. 春天到了,讲讲Spring的工作原理
  17. 集合的简单实现(斗地主牌的实现 )
  18. ~ 如何用C++自制一个日麻游戏 ~ 概述
  19. 记一次美版苹果手机购买经历
  20. 1.新电脑开荒(拯救者R9000p)

热门文章

  1. eyoucms自媒体新闻资讯类网站模板
  2. [分享]高仿网易新闻WebApp模板+Dcloud打包源码下载
  3. Dism命令安装组策略(gpedit.msc)
  4. shell编程之正则表达式与总结(grep,egrep)
  5. 左右可以滑动半年的超级日历,支持日历部分收起和自动重定向为北京时间
  6. Pixelmator Pro 教程,认识 Pixelmator Pro 界面
  7. 每次开机启动都会创建图标和修改锁定任务栏浏览器的主页
  8. UltralSO注册码
  9. macos终端美化_关于macOS终端美化的最轻松的指南Z Shell中的速成课程
  10. Smartbi电子表格设计企业报表(一)——中国式报表(分组报表)