QTableWidget是QT程序中,常用的顯示數據表格控件,其用法也不再贅述,這裏就說一說多選接口的使用方法,區別和問題。
首先,表格支持多選(Ctrl、Shift、 Ctrl+A都可以),需要對錶格進行屬性設置:
setSelectionMode(QAbstractItemView::ExtendedSelection);
另外,還可以對選中模式進行設置,比如選中時,默認選中一行數據:
setSelectionBehavior(QAbstractItemView::SelectRows);
多選效果,如下圖所示:
對於已經多選的單元格,如何進行獲取,接口提供了兩個:selectedItems和selectedRanges。
對於上圖的選取結果,對比說明如下:
接口 | selectedItems | selectedRanges |
---|---|---|
返回結果 | QList<QTableWidgetItem*> | QList<QTableWidgetSelectionRange> |
返回說明 | 選中單元格的,元素的列表 | 選中區域元素,邊界的列表 |
list.size() | 20 | 3 |
區別 | 支持左鍵、Ctrl+左鍵、Ctrl+A 和 Shift+左鍵 選中 | 只支持 左鍵 選中的,比如Shift+左鍵,最終只返回 兩端 的單元格 |
最後注意,選取的單元格數據是有了,但如果進行操作時候,特別是刪除,一定要從後往前,即從最大索引,忘最小索引處,進行操作,不然會引發異常。