我对qt比较陌生,但是正在尝试创建一个简单的gui,其中输入参数然后写入文本文件。
在某些时候,我想阅读 n 以下形式的参数集
1)x_min x_max y_min y_max t_min t_max
2)x_min x_max y_min y_max t_min t_max
...
n)x_min x_max y_min y_max t_min t_max
其中数字为QLabel类型,其余为QSpinBoxes。行数由用户决定,但 0&gt; = n <= 50 。我只想显示 n 行,以便不显示未使用的行。
我需要一种有效的方法来解决这个问题,并且特别是通过最少的编码来读取每行的信息。
我的想法是创建一个新的窗口小部件类(newRowClass),它包含每行的信息,然后将其放在QVector中。然后我可以遍历QVector并读取每一行的信息 - 这里每行的接口应该相同,这样可以使它相对有效。但是,我有效地组织这个问题,我不确定我是朝着正确的方向前进。
我们非常感谢所有关于如何做到这一点的想法/建议。
一切顺利,
博
答案 0 :(得分:0)
如果没问题,我会建议一个不同的实现路径。而不是制作一组重复的小部件,而是使用表来允许用户输入数据。
首先,我建议您阅读一下Qt Model/View Programming。这将为您提供有关如何组织数据的更多信息。
如果您需要支持不同的View类,我建议您使用QAbstractTableModel或QAbstractItemModel。如果您使用QAbstractTableModel
,只需将其设置为QTableView上的model
。
确保您正确实施model
以确保您的数据可编辑,例如详细了解Qt::ItemIsEditable
这应该指向正确的方向,让你可以自定义一系列行(例如,你的model
中的行数可以计算)并且可以编辑以允许用户输入x,y, t min / max values。
答案 1 :(得分:0)
您可以创建一个代表一行的小部件,包含您的不同输入&#34; min&#34;,&#34; max&#34;。添加公共方法以获取这些用户输入。
然后在主窗体中,在滚动区域中添加此窗口小部件的多个实例。您将指针保存在列表中的所有实例中,并且您将能够遍历它们以检索所需的信息。
这非常方便,对单元格的演变会更容易。