void Spreadsheet::copy()
{
    QTableWidgetSelectionRange range = selectedRange();这里返回值是什么?所选择的区域?
    QString str;
for (int i = 0; i < range.rowCount(); ++i) {
        if (i > 0)
            str += "\n";
        for (int j = 0; j < range.columnCount(); ++j) {
            if (j > 0)
                str += "\t";
            str += formula(range.topRow() + i, range.leftColumn() + j);
        }
    }
   QApplication::clipboard()->setText(str);
}
QTableWidgetSelectionRange Spreadsheet::selectedRange() 
{
    QList<QTableWidgetSelectionRange> ranges = selectedRanges();还是这是选择的区域??
    if (ranges.isEmpty())
        return QTableWidgetSelectionRange();
    return ranges.first();}
为什么只是返回 QList中的.first()就可以了?first()表示什么??
可不可以解释一下QList<QTableWidgetSelectionRange> ranges = selectedRanges();这是选择的区域??
 QTableWidgetSelectionRange range = selectedRange();这里返回值是什么?所选择的区域?
非常感谢    尽量详细些