2016-04-13 20 views
1

我創建TableView(由QTableView inhereting)和Model(由QAbstractTableModel inhereting),並實施了所有我需要的功能,但現在我要補充奇怪的特性選擇在QTableView中)必須能夠使表格視圖選擇「他們」的行。從QAbstractTableModel項目

它來自於這樣一個事實,即總是有圖形對象與它們相關,並且每當我點擊某個對象上的一個場景時,我希望以表格視圖爲中心。我可以這樣做嗎?

+0

你可以點擊專注於通過在線模擬或雙擊它。也許它可以工作? – Boiethios

+0

但是如何?我只有指向表項(包含在模型中的單個項目,視圖使用mdoel作爲源) - 我如何從這裏到達那裏? – Arker

+0

哦,是的,我讀QTableWidget而不是QTableView。我從來沒有使用過QTableView。 – Boiethios

回答

0

您的模型可以實現每次要更改選擇時發出的信號。就像這樣:

void CMyModel::sigUpdateSelection(const QItemSelection & selection, QItemSelectionModel::SelectionFlags flags); 

而且你可以把這個信號連接到你的表視圖的QItemSelectionModel。這是你如何讓選擇模型:

QTableView* view = new QTableView(parent); 
QItemSelectionModel* selectionModel = view->selectionModel(); 

QItemSelectionModel有一個插槽select()。這是您連接信號的地方。

這是你將如何發出:

// Add to current selection 
emit sigUpdateSelection(QItemSelection(indexLeft, indexRight), QItemSelectionModel::Select); 

// Clear current selection and select new one 
emit sigUpdateSelection(QItemSelection(indexLeft, indexRight), QItemSelectionModel::ClearAndSelect);