2016-03-30 23 views
0

我試圖爲一組幀上的每個幀設置一個ID,以便用數據庫信息填充它們並跟蹤哪個幀與哪些數據庫信息相鏈接。下面是設置框架將是什麼樣子的想法:如何識別具有某種類型ID的小部件(框架)?

frame

我需要什麼,每個這些幀的,是能夠識別它們。例如,我們可以認爲每個框架代表好友列表中的一個朋友,如果我點擊一個框架並按下刪除按鈕,我想先刪除框架但當然刪除了與數據庫相關的信息,因此請刪除此朋友從我的列表中,這就是爲什麼我需要在框架上有一個ID。 (將來,刪除按鈕將被放置在框架本身上,所以通過點擊它,我將能夠獲得父部件)。此外,每一幀將包含多個QLabel(上圖中的「一」,「兩」,「三」,「四」),我也需要能夠識別它們,因爲它們會表示可以像框架一樣刪除的數據庫信息。但是一次只有一個問題。

我首先想到了隱藏一個包含好友ID的標籤,但這似乎是一個壞主意。

然後我想到了使用一個列表並將該框架與一個ID相關聯,但是當點擊該框架時,我將如何能夠恢復其在列表上的位置?該框架在列表中的位置與在窗口中的位置相同,但是我需要在窗口中找到它們的位置,我不知道該如何去做。

我希望我很清楚。謝謝。

回答

0

由於QWidgetQObject,你可以給他們唯一的名稱(QObject::setName),或指定任意的QVariant值屬性對他們來說,一拉的JavaScript(QObject::setProperty)。這應該允許您輕鬆跟蹤哪些數據庫字段映射到哪個小部件。很容易將您的自定義類型支持添加到QVariant,請參閱文檔。

對於動態屬性的替代,您可以在QWidget*和描述連接所需的任何數據結構之間有一個映射。

如果您通過QAbstractItemModel使用數據源,那麼您還可以使用QDataWidgetMapper將模型的數據綁定到窗口小部件。

您還可以輕鬆地將數據從模型綁定到QML中的項目。

+0

我用這個屬性,它工作正常。謝謝。 – Megatron300