duilib进阶教程 -- TreeView控件的bug (9)

来源:互联网 发布:暗物质 暗能量知乎 编辑:程序博客网 时间:2024/05/21 16:57

一、不自动调整子控件的宽度(TreeView宽度小于260时)

  相信亲们用同样的代码,显示效果肯定和Alberl不一样吧~O(∩_∩)O~

  嘿嘿,仔细对比下,看看你们的列表头背景图片是下面这样的么?

  

 

  细心的小伙伴们应该早就发现了,可以看到右边那个箭头并没有完全显示出来,这是因为TreeView又调皮啦!

  最开始觉得是TreeView没有自动调整控件的宽度,去看了下代码,没啥问题,并且TestApp1里面那个tree也没出现这种现象,所以就一直以为是自己的XML代码出了问题。由于对duilib并不熟,所以只是稍微调试了一下,并没找到问题,就暂时没管。到后面其他效果都OK了,只剩下这个问题了,当然要解决啦,因为迅雷在不同分辨率下,大小是不一样的,所以Alberl也模仿了迅雷,结果发现在有些分辨率下,播放列表可以显示完全。而Alberl只是调整了窗口大小以及播放列表的宽度,再接着将背景图片放到TestApp1的tree里面,也OK,不过发现拖动TestApp1时,播放列表也有时显示不完全,再重现了几次这些情况,立马就发现问题了,TestApp1在小于一定宽度的时候,播放列表就显示不全了,按道理不管宽度多宽,子控件的宽度都会自动调整啊,于是量了一下出现问题的宽度,差不多是260左右,接着就去调代码,发现在CTreeNodeUI的构造函数里有这样一行代码:this->SetFixedWidth(250);  和260这么接近,于是就一下子解决了这个问题。嘿嘿,看来一个问题暂时解决不了,隔几天再过来看是很有道理滴~O(∩_∩)O~

  解决方案就是:

  将this->SetFixedWidth(250);  注释掉即可。

 

二、不自动调整子控件的宽度(TreeNode的高度在一启动就超过TreeView时)

  在Alberl做完整个效果后,又发现了一个bug,

  最开始打开播放器的时候是下面这样的,

  

 

  好家伙,和迅雷差不多啊?

  嗯,这个是正常的,那么我们接着拖入一些文件,

  

 

  这个时候显示了垂直滚动条,并且调整了列表的宽度,也是正常的,好家伙,连滚动条都和迅雷一样了~O(∩_∩)O~

  不过当我们关掉软件,再次打开的时候,就成这样了:

 

  咦,怎么那三个按钮显示到外面去了? 并且点击无效!

  不过触发一次刷新后,就正常了,比如最小化,或者调整窗口大小。

  其实这个并不仅仅是那三个按钮显示到外面去了,可以发现表头的图片也不显示箭头了,很显然,和上面介绍的那个bug是类似的。

  不过经过初步调试,并没有找到问题,由于Alberl为了继续写教程,就没管这个问题了,去群里问了也没人回答,可能是因为用TreeView的比较少吧?于是Alberl就继续写教程啦~O(∩_∩)O~

  这个问题Alberl当然能够解决,但是Alberl不喜欢重复造轮子,肯定有大神们做过了,不过这个问题也不是什么难解决的问题,所以Alberl希望小伙伴们能够在Alberl写完这个教程之前,就提供解决方案~O(∩_∩)O~

  当然,如果Alberl写完这个教程后,还没人提供的话,就只有去调试了,都做到这一步了,也不差那么一点,干脆就解决它呗。

  有心想解决这个问题的大神请注意啦,Alberl在这里提供几个现象:

1、如果给TreeView显示滚动条,那么就很容易观察是否有问题啦。用以下简单代码即可复现问题:

        <TreeView height="60" bkcolor="#FF00FF00" vscrollbar="true" hscrollbar="true" >            <TreeNode height="33" bkcolor="#FF0000FF" />            <TreeNode height="33" bkcolor="#FF00FFFF" />        </TreeView>

  所以第一个问题如果加上hscrollbar="true",可以发现只要宽度小于260,就会出现滚动条,这就说明问题复现了,当然,这个问题已经解决啦。

2、第二个问题如果加上vscrollbar="true" ,可以发现只要出现垂直滚动条,问题就复现啦。

  这个问题和动态添加或静态添加TreeNode没有关系,只要在软件初始化的时候,加上了TreeNode,当其显示垂直滚动条的时候,就可以复现问题。

  嗯,希望小伙伴们在Alberl写完教程之前,提供解决方案哟~O(∩_∩)O~


     教程接近尾声啦,第二个bug也解决了,请见http://www.cnblogs.com/Alberl/p/3404393.html

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 新车汽油泵坏了怎么办 墓地的树枯死了怎么办 大车尿素不烧了怎么办 不烧尿素限扭怎么办 汽车首保过期了怎么办 假体隆鼻后透光怎么办 熊猫血有抗体了怎么办 rh阴性血怀二胎怎么办 熊猫血怀二胎了怎么办 rh阴性血要二胎怎么办 全血粘度都偏高怎么办 血脂高血粘度高怎么办 全血粘度值1偏高怎么办 全血粘度3偏高怎么办 血粘度高的症状怎么办 粉瘤感染化脓了怎么办 乌药剂量用大了怎么办 水卡消磁了怎么办妙招 电卡消磁了怎么办妙招 入园磁卡消磁了怎么办 透析中静脉压高怎么办 腰间盘突出压迫神经腿疼怎么办 肺热引起的发烧怎么办 肺热引起的痘痘怎么办 冰箱压条的霉点怎么办 白色的布鞋变黄怎么办 白鞋橡胶变黄了怎么办 肝功能检查总胆汁酸高怎么办 吃丹参滴丸尿血怎么办 胰酶消化过久怎么办 抗凝血酶活性低怎么办 抗凝血酶3偏低怎么办 抗凝血酶ⅲ低 怎么办 抗凝血酶3抗原高怎么办 孕32周血压高怎么办 智齿血凝块掉了怎么办 入职体检alt偏高怎么办 剖腹产后crp值高怎么办 超敏c反应蛋白偏高怎么办 孕妇c反应蛋白高怎么办 婴儿超敏crp偏高怎么办