[英]Get selected QTreeWidget cells
假設我有一個6行6列的treeWidget。 我已將選擇行為設置為選擇單個項目,而不是整個行。 這按預期工作,我可以選擇單個單元格。 我的問題是如何查詢當前選擇的單元格?
我試過使用treeWidget.selectedItems(),但這會返回一個列表treeWidgetItems,據我所知,它對應於整行。 因此,如果我在同一行中選擇了幾列,則此命令將返回一個包含單個treeWidgetItem的列表。 而且我找不到辦法找出在treeWidgetItem中選擇了哪些列。
任何想法如何去做?
您可能需要使用QItemSelectionModel
並調用方法selectedIndexes()
參考 : http : //doc.qt.io/qt-5/qitemselectionmodel.html#selectedIndexes
QItemSelectionModel* model = myTreeWidget->selectionModel();
QModelIndexList indexList = model->selectedIndexes();
for(int i = 0; i < indexList.size(); ++i) {
QTreeWidgetItem* item = myTreeWidget->itemFromIndex( indexList[i] );
// do something with each item
}
此外,列表中的各個索引將包含可能有用的.row()
和.column()
信息。
作為在索引中使用.column()
示例:
for(int i = 0; i < indexList.size(); ++i) {
QTreeWidgetItem* item = myTreeWidget->itemFromIndex( indexList[i] );
int c = indexList[i].column();
QVariant d = item.data(c, Qt::DisplayRole);
d = QVariant( d.toString() + "*" )
item->setData(c, Qt::DisplayRole, d);
}
每次運行此循環時,選定的單元格應在末尾添加*
。
編輯:修復了對item->setData( ... )
的調用的問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.