MTableModel setData BUG
FXTD-ODYSSEY opened this issue · 2 comments
FXTD-ODYSSEY commented
dayu_widgets/dayu_widgets/item_model.py
Line 224 in 6f4c6c4
如果 data_object 的 key 元素是个字典, 触发 edit 编辑之后会变成字符串
所以这里要保留原先的字典状态
val = data_obj.get(key)
if isinstance(val,dict):
set_obj_value(val, "name", value)
else:
set_obj_value(data_obj, key, value)
# 采用 self.dataChanged.emit方式在houdini16里面会报错
我这里是修改为上述的代码 , 字典模式下默认显示 "name" 的值
muyr commented
针对值为dict的情况,一般对应的是个类似数据库表的一条数据(参考shotgun中的 shot 页面中 sequence 属性的显示和编辑处理),其编辑模式需要比较细致的处理,一般是用来换条数据(换个sequence),或者是删除(sequence)。
目前的值为dict的情况,仅支持显示(显示出dict中key 为的 name 或者 code对应的 value,也是基于shotgun的多数情况),编辑模式会直接将 dict 变成字符串,体验非常不好。后续考虑更为恰当的展示方式。
如果不是上述情况,还选择了dict,那么可以考虑换种使用方法,比如将 dict 拍扁成列级别,如果dict 存储了界面的显示数据,比如 bg_color, tooltip 等,请在 header 里面使用函数来进行配置。参考这里的例子https://gist.github.com/muyr/7c9999e806735100afef2f078cfe3a17
FXTD-ODYSSEY commented
感谢大佬指导,赐教了~