我正在做角色动画编辑。
我的角色在像这样的QTreeView中表示
等等。
Item
,Character
和Animation
继承了一个基本的抽象Frame
课程。
限制是:
Character
项目可以包含任意数量的Animation
个项目Animations
项目可以包含任意数量的Frame
个项目Frame
项目不能有任何孩子现在,从Item
继承的所有内容都有一个名称。然后每种类型的项目都会添加自己的属性(Animation
可以包含Wrap模式,FPS; Frame
可以有持续时间。)
因此树的每个级别都有不同的数据集。
现在我想添加另一个小部件,允许编辑每个Item
的数据。小部件将分为3个部分(部分):与角色相关的数据,与动画相关的数据和与帧相关的数据。
当用户选择树中的项目时,窗口小部件将根据以下规则自动填充:
Character
=>仅填写字符部分Animation
=>使用作为此动画的父级的角色填充动画部分+执行步骤1
Frame
=>使用作为此框架的父级的动画2
醇>
我可以区分所选项目(我可以判断它是字符,帧的动画)。我可以从选定的孩子访问父项目。
我的问题是我不知道如何在我的树模型和编辑小部件之间映射数据。我查看了QDataWidgetMapper,但它没有帮助,看起来它适用于具有相同项目的模型,而我的模型每个级别有不同的项目。
我可能有一个重大的设计缺陷,或者我根本不知道如何实现我想要实现的目标。
我想要一些指导。
P.S。
这是主屏幕层次结构和3个部分的图像
答案 0 :(得分:0)
摘要,来自评论: