QTableWidgetSelectionRange range = selectedRange();这里返回值是什么?所选择的区域?谢谢 Qt初学

voidSpreadsheet::copy(){QTableWidgetSelectionRangerange=selectedRange();这里返回值是什么?所选择的... 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() const
{

QList<QTableWidgetSelectionRange> ranges = selectedRanges();

if (ranges.isEmpty())

return QTableWidgetSelectionRange();

return ranges.first();这一句表示返回的是什么?是选择区域的第一个单元格??first()很费解
}
展开
 我来答
百度网友33f7186
2013-11-12
知道答主
回答量:7
采纳率:0%
帮助的人:5.8万
展开全部
selectedRange()是选择范围,左上角到右下角的之间的区域
ranges.first()是首地址指针
更多追问追答
追问
QTableWidgetSelectionRange range = selectedRange();

怎么把首地址指针赋值给QTableWidgetSelectionRange 对象??
range.rowCount()返回的首地址指针怎么还能点号取区域的行和列数目??
追答
类似一个结构体,包含行数,列树,还要一个指向下一个节点的指针
百度网友127921c
2018-11-23
知道答主
回答量:1
采纳率:0%
帮助的人:802
展开全部
这时的ranges.first()重载了QList的内置函数——first()函数,转到ranges.first()函数的定义(inline T& first() { Q_ASSERT(!isEmpty()); return *begin(); })可以看到,其返回的是‘T’的引用而不是指针,T是模板,在这里会被替换成QTableWidgetSelectionRange,也就是说,first()函数会被实现为QTableWidgetSelectionRange& QList<QTableWidgetSelectionRange>::first()所以这是按引用传递,可以使用"."运算符,放心,C++中,对象名不是对象地址的,这是为了区分“.”和“->”运算符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
德怀楼探长
2018-05-16
知道答主
回答量:1
采纳率:0%
帮助的人:868
展开全部
QList<QTableWidgetSelectionRange> ranges :每个元素都是一个选择范围,所以返回的第一个元素也是一个选择范围,包含很多item,所以下面可以直接得到其rowCount和columnCount的值。我是这么理解的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式