QTableWidget获取列(行)索引方法

发布时间 2023-04-12 14:43:37作者: flxx
// 获取指定的列索引集合
QList<int> QcViewBaseForm::getSelectedColumns(QTableWidget* tableWidget) {
    QList<int> selectedColumns;
    QList<QTableWidgetSelectionRange> selectedRanges = tableWidget->selectedRanges();
    for (auto range : selectedRanges) {
        for (int col = range.leftColumn(); col <= range.rightColumn(); ++col) {
            if (!selectedColumns.contains(col)) {
                selectedColumns.append(col);
            }
        }
    }
    return selectedColumns;
}

// 获取指定的行索引集合
QList<int> QcViewBaseForm::getSelectedRows(QTableWidget* tableWidget) {
    QList<int>               selected_rows;
    QList<QTableWidgetItem*> selected_items = tableWidget->selectedItems();
    for (int i = 0; i < selected_items.size(); ++i) {
        int row = selected_items[i]->row();
        if (!selected_rows.contains(row)) {
            selected_rows.append(row);
        }
    }
    std::sort(selected_rows.begin(), selected_rows.end());
    return selected_rows;
}