• 3895阅读
  • 1回复

[讨论]书中67页的例子   看不懂  求助 [复制链接]

上一主题 下一主题
离线chenyong568
 

只看楼主 倒序阅读 楼主  发表于: 2013-11-12


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();这里返回值是什么?所选择的区域?
非常感谢    尽量详细些  
离线chenyong568

只看该作者 1楼 发表于: 2013-12-10
现在明白了
书上在创建Spreadsheet对象的时候,设定了一种选择方式
//ContiguousSelection:多选(一次选多项,相当于window下按住shift选文件)
setSelectionMode(ContiguousSelection);
所以QList<QTableWidgetSelectionRange> ranges = selectedRanges();返回的QList中最多只有一个区域,
所以return ranges.first();就够了,这里是返回的第一个元素的引用。
还在探究中……
快速回复
限100 字节
 
上一个 下一个