2011-08-30 73 views
5

這裏就是我試圖讓(這是一個QTableView部件+ MVC基於QAbstractTableModel與多代表):HowTo使用自定義(不可編輯)委託創建模型/查看QTableView?

enter image description here

注:

  • 代表不是編輯者,他們只是觀衆!我沒有用這個表格視圖編輯模型。

  • 代表必須是可實現的。這意味着藍色行的所有總高度可以是25px或250px。

  • MV是簡單的數據:

    1ROW:CompanyName1:NAME1,NAME2 NAME3 OTHER DATA

    2ROW:CompanyName2 SingleName1 OTHER DATA

    3ROW:CompanyName3 NAME1,名稱2其他數據和等等。 ..

問:

  • 是否可以創建自定義委託(QItemDelegateQStyleItemDelegate),例如,像上圖中的第二列?如果可能的話,也許你可以給我一些例子或資源鏈接,我可以在哪裏看到它們。

PS。是的,我已經看過所有Qt演示與代表的例子,但我只是不明白,如何做我想要的。

PSS。 QTableView - >setIndexWidget()我認爲這不是一個好主意。但QTableView - >setItemDelegateForColumn(myCustomDelegate)方法更好!

P3S。我不尋找QTableWidget類的解決方案...

謝謝你的答覆! :-)


更新#1:

  • 我認爲:

    • 代表僅用於編輯(例如,如果我們用模型工作/視圖對象)和管理類似的項目(所有/只是列/只是行)。

    • 自定義小部件比較好,但我沒有在免費的Qt項目中見過他們。要獲得這種小部件的正確和可靠的代碼並不容易


增加:

  • 這裏是link到相似性問題。
+0

你能描述一下如何從模型中獲取數據嗎?你在使用自定義角色嗎?例如,如何獲得特定行的'CompanyName2'? – Casey

+0

現在,我沒有這樣的解決方案。只有'QTreeWidget' +我的自定義小部件。在我的問題中,我正在尋找一個答案,其中將包含有關加入事物的信息,例如:表格視圖,模型和代表所有在一起... – mosg

+0

@mosg如果包含完整的最小工作示例,則會更容易回答在其中你想做X.坦率地說,我發現spinbox委託例子非常有幫助和簡單。 http://qt-project.org/doc/qt-4.8/itemviews-spinboxdelegate.html。我在python中工作,所以不能用太多的細節,除了下面的答案:它實際上很容易 - 只需爲只讀模型重新實現繪圖。其餘的工作可以回到委託基類。 – neuronet

回答

0

代表不僅可用於創建用於編輯的小部件。它們也用於創建每個可見索引的整體外觀(在本例中爲表格單元格)。

您可以通過重新實現代理的paint()方法來自定義創建外觀。

相關問題