在PyQt5树模型中使用PyQt5模型的最佳方法

2024-10-02 14:26:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经有了一个使用SQLAlchemy制作声明性模型的代码结构

示例表/模型:

  • 存储库
    • 存储库id
    • 名字
    • 所有者
  • 端点
    • 存储库id
    • 端点id
    • 名字
    • 方法
  • 上下文
    • 上下文id
    • 端点id
    • 父上下文id
    • 配置
    • 创建于
    • 创建于

我想创建一个QtTree来选择存储库>;终点>;语境>;嵌套上下文

类似于IDE的浏览器视图,该视图显示两个文件夹/包/文件,并为每个文件夹/包/文件提供不同的右键单击菜单

我正在试图理解实现这一点的“正确”方式是什么

我看过GitHub,想看看其他人都做了些什么,但大多数小型开源应用程序都只是使用树形图,或多或少都有硬编码的视图,或者像“Eric”这样的大型项目,它们都在做延迟加载之类的事情。。。我不确定这是否是我想要做的事情的全部过度使用——Eric中1700多行自定义实现代码似乎比我见过的任何其他代码都能提供更多的反馈。。。但我仍然有一个问题,我的模型问题已经半定义了一次

由于我主要在应用程序的其余部分使用SQLAlchemy,我是否应该首先创建/使用“SqlAlchemyTableModel”来构建每个模型,然后创建一个执行创建这些模型的逻辑的“BrowserModel”

RepositoryModel/EndpointModel/ContextModel应该是一个子类,还是仅仅通过泛型类创建它们就足够了

理想情况下,我希望存储库/端点/Etc在列表中有不同的图标和不同的上下文菜单。这些应该设置在他们的模型中吗?通过父模型?通过一个装饰代理?通过视图代理

我觉得我有一百万把锤子,但我不知道我看到的是钉子还是螺丝钉

参考: https://github.com/davy39/eric/blob/master/UI/BrowserModel.py


Tags: 文件代码模型gt文件夹视图id应用程序