2011-12-17 55 views
0

目前,我有一個簡單的設置,我保持對應於我的ListModel每個項目的bool列表:不同的視圖不同的Qt :: CheckStateRole?

http://programmingexamples.net/wiki/Qt/ModelView/StringListModelCheckable

不過,現在我想要做的是有兩個這樣的列表的bool,說IsHot和IsLarge。然後我想有一個顯示每個字符串的布爾變量之一(「熱」視圖)複選框一個ListView,並顯示每個字符串與其他布爾(「大」布爾)複選框單獨的ListView。有關如何解決這個問題的任何提示?

回答

1

使您的模型成爲一個表,將數據返回到兩個不同的列中,這些列中的單元格將被檢查。

在您的列表視圖,請致電QListView::setModelColumn設置列的列表視圖顯示。

如果你想同步列表之間滾動,你將被更好地使用QTableView中,讓行會匹配。


編輯可以在返回文本和檢查狀態時添加更多細節。

要返回文本,並從模型中的複選框的狀態從[數據]功能,在你的模型返回不同角色不同的數據。

manual for Qt::ItemDataRole

Qt::DisplayRole的關鍵數據以文本的形式來呈現。 (QStringQt::CheckStateRole此角色用於獲取一個項目的選中狀態。 (Qt::CheckState

在你的模型將返回DisplayRole相同的數據(名稱),但不同的數據CheckStateRole

+0

幾乎聽起來不錯,兩個柱子......這個問題我想在ListView的文本顯示名稱列,但該複選框被鏈接到IsHot列。如果顯示的文本來自同一列可檢查的項目來了,ListView控件將只顯示「真」或「假」與旁邊的複選框,這是沒有幫助的。明白了嗎? – 2011-12-19 15:25:41

+0

您的模型可以返回它喜歡沿着任何文本有一個複選框,見編輯答案。 – 2011-12-20 14:25:54

相關問題