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()很费解
} 展开
{
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()很费解
} 展开
展开全部
这时的ranges.first()重载了QList的内置函数——first()函数,转到ranges.first()函数的定义(inline T& first() { Q_ASSERT(!isEmpty()); return *begin(); })可以看到,其返回的是‘T’的引用而不是指针,T是模板,在这里会被替换成QTableWidgetSelectionRange,也就是说,first()函数会被实现为QTableWidgetSelectionRange& QList<QTableWidgetSelectionRange>::first()所以这是按引用传递,可以使用"."运算符,放心,C++中,对象名不是对象地址的,这是为了区分“.”和“->”运算符。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
QList<QTableWidgetSelectionRange> ranges :每个元素都是一个选择范围,所以返回的第一个元素也是一个选择范围,包含很多item,所以下面可以直接得到其rowCount和columnCount的值。我是这么理解的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询