PyQt:表结构的最佳方法,可以将小部件添加到每个单元格

问题描述 投票:0回答:0

对于我的项目,我有一个表格结构,用户可以在其中向每个单元格添加不同的元素。这可以是文本编辑器、音频播放器或图片。所以单元格中的内容非常灵活。用户可以与小部件交互并根据它们的功能进行编辑。

这是一个非常简单的草图:Table example
编辑: 我搞砸了草图。这些应该是 3 列。

现在我正在纠结哪种方法最好:

我发现了三种方法。

  1. 使用

    QTableWidget
    QTableView
    并使用
    setCellWidget
    /
    setIndexWidget
    为每个单元格设置一个带有
    QVBoxLayout
    的空小部件,以便用户可以将小部件添加到布局中。我知道这种方法是非常不鼓励的,因为太多的小部件可能会出现性能问题,但也许我可以限制单元格中的行数、列数和小部件数。无论如何,据说下一种方法更好。

  2. 使用

    QStyledItemDelegate
    并在项目委托中绘制“小部件”。我从来没有这样做过,所以我必须学习如何做,而且我在 Qt 的 MVC 框架方面没有任何经验。我在 Internet 上看到的示例使用一个静态结构作为单元格,但我想知道如何制作一个灵活的结构,就像我之前描述的项目委托一样。小部件本身并不那么复杂。

  3. 使用

    QGridLayout
    但这基本上是从头开始构建自定义表格小部件,我想知道您是否会遇到与 1 中相同的性能问题。

那么你认为最好的方法是什么?或者还有更好的吗?

python pyqt qtableview qtablewidget
© www.soinside.com 2019 - 2024. All rights reserved.