本文整理汇总了C++中QDomElement::previousSibling方法的典型用法代码示例。如果您正苦于以下问题:C++ QDomElement::previousSibling方法的具体用法?C++ QDomElement::previousSibling怎么用?C++ QDomElement::previousSibling使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QDomElement
的用法示例。
在下文中一共展示了QDomElement::previousSibling方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: processDetail
QDomElement OOoReportBuilder::processDetail(const QDomElement &rowDetail)
{
QDomElement lastElement = rowDetail;
if (rowDetail.isNull() || reportBand(rowDetail) != Detail)
return QDomElement();
QString textCell = cellText(rowDetail.firstChild().toElement());
textCell.remove(QRegExp("\\{|\\}|detail"));
int modelId = textCell.toInt() - 1;
if (modelId < m_models.count() - 1) {
rowDetail.parentNode().removeChild(rowDetail);
return lastElement.previousSibling().toElement();
}
QAbstractItemModel *model = m_models.at(modelId);
for (int i = 0; i < model->rowCount(); i++) {
QDomElement tmpRow = rowDetail.cloneNode(true).toElement();
QDomElement cell = tmpRow.firstChild().toElement();
cell = cell.nextSibling().toElement();
while (!cell.isNull()) {
QString str = cellText(cell);
if (!str.isEmpty()) {
str.remove(QRegExp("\\{|\\}"));
if (!QString::compare(str,"rowno",Qt::CaseInsensitive)) {
setText(cell,QString::number(i));
} else if (str[0] == 'P') {
QVariant var = processParams(str.mid(2));
if (var.type() == QVariant::Double) {
setText(cell,var.toDouble());
} else {
setText(cell,var.toString());
}
} else {
QRegExp rx("col\\d{1,2}");
if (rx.indexIn(str) == 0) {
int colNo = str.remove(QRegExp("col")).toInt();
QVariant var = model->data(model->index(i,colNo));
if (colNo <= model->columnCount() - 1) {
if (var.type() == QVariant::Double) {
setText(cell, var.toDouble());
} else
setText(cell, var.toString());
} else
setText(cell,"Err");
} else
setText(cell,str);
}
}
if (cell.attributes().contains("table:formula")) {
QString formula = processFormula(cell.attribute("table:formula"), i);
cell.setAttribute("table:formula",formula);
}
cell = cell.nextSibling().toElement();
}
lastElement = rowDetail.parentNode().insertBefore(tmpRow,rowDetail).toElement();
}
rowDetail.parentNode().removeChild(rowDetail);
return lastElement;
}