2012-07-06 92 views
0

我已經使用我的數據抽象方案將自己編碼爲角點類,並且導致我需要editorOpened(QModelIndex)和editorClosed QmodelIndex)在我的視圖(QTableView幾乎完全)信號。(Qt)如何在視圖中實現editorOpened(index)和editorClosed(index)信號

原因是我的數據類具有需要在編輯期間阻止/禁用的自動行爲,然後重新啓用。

起初我以爲試圖用自定義代表來做,但由於幾個原因遇到了問題:一個就是,使用自定義委託給每個單項提供相同的行爲似乎有點過分,在其他似乎它應該由視圖本身爲所有項目完成。第二個問題是,代表似乎是const,它阻止我設置代理內數據對象的內部句柄。我發現QAbstractItemView :: edit和QAbstractItemView :: closeEditor這將是完美的候選重新實現與打開()和封閉()信號,但是我需要一個索引/處理特定項目正在編輯,我不認爲我可以從這些方法中獲得...

在這一點上,我不知道我可以做什麼。我會很感激任何提示或指針在正確的方向!感謝您閱讀

回答

1

我解決它在我自己的......

我發現QAbstractItemDelegate :: editorEvent這是非常量(我一定還沒有被作爲密切關注,因爲我之前閱讀文檔時認爲)。

我能夠在這個方法中的自定義委託中設置一個內部句柄,它允許我簡單地創建一個插槽來完成關閉時我需要的功能,並將closeEditor(QWidget *,QAbstractItemDelegate :: EndEditHint)信號到它。