2010-03-09 22 views
6

我有在形成具有數據裝載有QStandardItemModel一個QTableView中設置選項卡訂單QTableView中使用Qt 4.4

Parameter Value 

    X1   0.456 
    X2   0.123 
.... and so on. 

現在我要設置Tab順序財產,這樣我可以遍歷方式只通過值而不是參數。即當控制在0.456時,如果我按'Tab'鍵,它必須去0.123而不是X2(默認行爲)。此外,列參數已禁用Edt觸發器,我只能更改這些值。我知道QWidget :: setTabOrder(QWidget *,QWidget *),但因爲我通過QStandardItemModel設置數據我如何實現QTableView中所需的Tab順序?我正在使用Qt 4.4和Windows XP。另外我沒有使用Qt設計器來設計UI元素。一切都只通過代碼。

回答

2

子類QTableView並覆蓋keyPressEvent。檢查事件中的Tab鍵,否則調用基本實現。從視圖的選擇模型中獲取當前選定的索引。將視圖的edittrigger設置爲CurrentChanged,或者將自己的QItemDelegate放在手動控制中。

2

實際上,當您正在編輯時,keyPressEvent並未發出,而是必須重新實現closeEditor並檢查提示。如果提示是QAbstractItemDelegate :: EditNextItem,則更改selectionModel :: currentIndex並使用使用QTableView :: edit。

其他解決方案只能當你不修改,但無論如何,它給了我一個起點,所以我給它的賞金

+0

這也可能有所幫助:[自QTableView中編輯行爲(HTTP ://www.hardcoded.net/articles/how-to-customize-qtableview-editing-behavior.htm) – 2012-05-27 19:49:35

相關問題