查看完整版本: [-- 书中67页的例子   看不懂  求助 --]

QTCN开发网 -> 《C++ GUI Qt 4编程》(第2版)专栏 -> 书中67页的例子   看不懂  求助 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

chenyong568 2013-11-12 23:04

书中67页的例子   看不懂  求助



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 2013-12-10 19:56
现在明白了
书上在创建Spreadsheet对象的时候,设定了一种选择方式
//ContiguousSelection:多选(一次选多项,相当于window下按住shift选文件)
setSelectionMode(ContiguousSelection);
所以QList<QTableWidgetSelectionRange> ranges = selectedRanges();返回的QList中最多只有一个区域,
所以return ranges.first();就够了,这里是返回的第一个元素的引用。
还在探究中……


查看完整版本: [-- 书中67页的例子   看不懂  求助 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled