16,235
社区成员
发帖
与我相关
我的任务
分享
for(int nRow = 0;nRow<tableWidget->rowCount();nRow++)
{
for(int nColumn = 0;nColumn<tableWidget->columnCount();nColumn++)
{
tableWidgetItem = tableWidget->item(nRow,nColumn);
//绘制单元格
DrawTableItem(w,h,tableWidget->columnWidth(nColumn),tableWidget->rowHeight(nRow),tableWidgetItem,painter);
w += tableWidget->columnWidth(nColumn);
}
w = x;
h += tableWidget->rowHeight(nRow);
}
void QTableViewPrivate::setSpan(int row, int column, int rowSpan, int columnSpan)
{
if (Q_UNLIKELY(row < 0 || column < 0 || rowSpan <= 0 || columnSpan <= 0)) {
qWarning("QTableView::setSpan: invalid span given: (%d, %d, %d, %d)",
row, column, rowSpan, columnSpan);
return;
}
QSpanCollection::Span *sp = spans.spanAt(column, row);
if (sp) {
if (sp->top() != row || sp->left() != column) {
qWarning("QTableView::setSpan: span cannot overlap");
return;
}
if (rowSpan == 1 && columnSpan == 1) {
rowSpan = columnSpan = 0;
}
const int old_height = sp->height();
sp->m_bottom = row + rowSpan - 1;
sp->m_right = column + columnSpan - 1;
spans.updateSpan(sp, old_height);
return;
} else if (Q_UNLIKELY(rowSpan == 1 && columnSpan == 1)) {
qWarning("QTableView::setSpan: single cell span won't be added");
return;
}
sp = new QSpanCollection::Span(row, column, rowSpan, columnSpan);
spans.addSpan(sp);
}