2015-04-06 62 views
0

我對qt比較陌生,但正試圖製作一個簡單的gui,其中輸入參數然後寫入文本文件。簡單的qt gui;重複部件

在某些時候我想在Ñ套以下形式

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

其中NUM bers是QLabel類型,其餘的是QSpinBoxes。行數由用戶決定,但是0> = n < = 50。我只想顯示n行,以便不顯示未使用的行。

我需要一個有效的方式來處理這個問題,特別是用最少的harcodeing讀取每一行的信息。

我的想法是創建一個新的控件類(newRowClass),它具有每行的信息,然後將其放置在QVector中。然後,我可以遍歷QVector並讀取每行的信息 - 這裏每行的接口應該是相同的,這會使其相對高效。不過,我在組織這方面遇到了問題,並且我不確定我是否正朝着正確的方向前進。

關於如何做到這一點的所有想法/建議,非常感謝。

一切順利,

回答

0

我會推薦不同的路徑,執行,如果這是好的。而不是使重複的小組件使用表格來允許用戶輸入數據。

首先我建議讀一下Qt Model/View Programming。這將爲您提供更多有關如何組織數據的信息。

接下來我會推薦使用QAbstractTableModelQAbstractItemModel如果您需要支持不同的View類。如果您使用QAbstractTableModel只需在QTableView上將其設置爲model即可。

確保您正確實施了model以確保您的數據是可編輯的,例如,閱讀更多關於Qt::ItemIsEditable

這應該指出你有一系列可以自定義的行(例如可以在你的model中進行行計數)並且可以編輯以允許用戶輸入x,y ,t最小值/最大值。

0

您可以創建一個表示一行的小部件,包含您的不同輸入「min」,「max」。添加公共方法來獲取這些用戶輸入。

然後在主窗體中,您可以在滾動區域內添加該窗口小部件的多個實例。你將指針保存在一個列表中,你可以遍歷它們來檢索你想要的信息。

這非常方便,並且向單元格的演化將更容易。