带qt的复杂表 - 我该如何开始?

时间:2014-01-31 13:53:45

标签: qt pyqt tablelayout

过去,我在QT中做了一些小应用程序。我的应用程序的用户界面只包含一堆“标准”小部件(几个按钮,间隔符,文本字段......)。但是现在,我想要构建更大更复杂的东西。我想要创建的应用程序包含一个非常复杂(至少对我而言)的表结构。

我尝试在Excel中设计布局(看看,如果这种表结构是用户友好的并且通常有效),现在我想用QT实现它。我附上了一张照片,以便你可以看到桌子最后的样子。对于每一天,应该创建某种“子表”,用户可以在其中输入一些值。如果用户向右滚动,则应创建新的子表(具有新日期)。所以基本上,我想创建一个非常动态的表。如果用户向左滚动,他会看到旧条目,如果他向右滚动,则会创建新条目。

complex table structure

创建这种表结构的最佳方法是什么?我应该使用QTableWidget / QTableView结构并像Excel一样修改它(颜色单元格,在单元格之间添加间距......)还是创建某种自定义窗口小部件(可能是几个文本域组合在一起?)更好?

如果有人能就如何开始给我建议我真的很感激。此刻,我有点迷失......

2 个答案:

答案 0 :(得分:1)

警告:此问题的答案主要是基于意见的。

我在创建一个巨大的复杂表时看到的一个问题是适应性:如果您想要开始分组单元格,折叠/展开部分,样式,启用/禁用整天等等,该怎么办?当然,您可以通过隐藏表格单元格并跟踪哪些单元格是标题等来实现此目的,但这种方法将缺少预定义控件提供的许多好处。

您可能需要考虑将表细分为“面板”的层次结构:顶层面板是一行:最左边的静态面板,然后是每天一个面板;您的下一个级别是,每天都有一个包含一列的表格,顶行是您的值面板,然后是您的参数面板,然后是您的产品面板。最后,在每个人中都有一个“常规”表。

您将使用的实际Qt小部件:QtGridLayout,QtBoxLayout,QtHBoxLayout,QtVBoxLayout和QtStackedLayout中的一个或多个。有关示例,请参阅http://qt-project.org/doc/qt-4.8/layout.html

答案 1 :(得分:0)

因为你肯定会使用在它们后面实现的模型和智能逻辑,我建议实现这样的方法,你实现一些“简单”逻辑模型,然后例如将它们全部组合成一个组合模型。 / p>

通过使用此方法,您可以轻松实现/调试/跟踪生成的模型/视图的每个简单部分。

作为信息的来源和阅读有关模型等的内容的一些材料,我可能会推荐一些关于模型组合,转换,代理链等的文章:http://lynxline.com/category/models/