我想 - 將一個自定義小部件放入QTableView
的單元格中。 Widget可以是一個QPushButton
,一個複選框或其他東西。我試過以下方法,但沒有人滿足我:Qt在QTableView單元格內設置一個自定義小部件
- 使用委託。這個策略可以繪製小部件,但不能作爲定製小部件,並且不能相互作用。
- 使用
QTableView::setIndexWidget()
。使用這種策略,定製小部件完全覆蓋整個單元格&,委託綁定到QTableView
不起作用,這意味着雙擊()不會對單元格進行編輯操作。
請注意,該功能是獨立的,就像插件一樣。所以我不能做下面的事情。
- 繼承自
QTableView
。我只能得到與QTableView
綁定的一個指針變量----只有QTableView
的一個對象。 - 從任何模型繼承。模型是由其他用戶控制的,程序員寫作模型不應該也不能僅僅使用我自己定製的模型。
問題確實很複雜,太多的約束限制了設計。
我想你將不得不去委託的方式。您可以使用自定義小部件,並且可以與它們進行交互。請參閱:https://stackoverflow.com/questions/16660292/qt-using-custom-qitemdelegate-for-qtableview – Taron
QItemDelegate :: createEditor()只是在單擊單元格時繪製。如果我點擊單元格,另一個委託也可以工作。但QItemDelegate :: paint()只能繪製,不會給出一個真正的可以交互的Widget –
tableView-> openPersistentEditor(index )。隨着它始終可見! – Taron