仿照 C++ GUI Qt编程(第二版)作了spreadSheet的例子, 若没有合并的单元格,复制、粘贴多个单元格正常,若用setSpan合并单元格后, 选中多个单元格后,只复制了第一个单元格,这个怎么回事?
QTableWidgetSelectionRange Spreadsheet::selectedRange() const
{
QList<QTableWidgetSelectionRange> ranges=selectedRanges();
if(ranges.isEmpty())
return QTableWidgetSelectionRange();
return ranges.first();
}
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);
} |