• 6165阅读
  • 5回复

Delegate 以后,选中项目的样式发生了变化 [复制链接]

上一主题 下一主题
离线napier
 

只看楼主 倒序阅读 楼主  发表于: 2011-10-11
未使用 delegate 的 Model/View 的项目被选中之后,按照 style 的不同,会有一种特定的样式:



Vista 和 Win 7 下默认是水色,有一点点凸出的立体效果。

使用 delegate,变成了另一种样子:



如上图,使用 delegate 的列变成了蓝色无立体效果的样子,没有 delegate 的列原样不变。

怎样恢复默认的样子?


离线alexltr

只看该作者 1楼 发表于: 2011-10-11
應該要看你的delegete的paint函數是怎樣寫的.
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!

                      ----  一个一直在入门的编程学习者
离线napier

只看该作者 2楼 发表于: 2011-10-11
delegate 没有 paint  函数也会这样。。。
离线napier

只看该作者 3楼 发表于: 2011-10-16
即使是特意写一个空的 delegate,效果也是一样。

研究了一下,发现 view 初始化后默认使用的是 QStyledItemDelegate,而不是经常用来子类化的 QItemDelegate,两者的表现不同。。。如果自定义一个 delegate 的基类是前者,就不会出现样式的变化。但问题是 QStyledItemDelegate 缺少一些 QItemDelegate 中具有的函数,实现需要的功能不方便。。。
离线蠢蠢欲懂
只看该作者 4楼 发表于: 2012-05-04
回 3楼(napier) 的帖子
我用的是QTreeView,继承QStyledItemDelegate,仍然有这样的差别
离线weizhouyue

只看该作者 5楼 发表于: 2013-01-31
我也有这样的问题,同问
快速回复
限100 字节
 
上一个 下一个