void MainWindowImpl::on_tableView_doubleClicked(QModelIndex index){ EditInvoiceImpl editInvoice(this); QDataWidgetMapper *mapper = new QDataWidgetMapper(this); mapper->setModel(modelInvoice); mapper->setSubmitPolicy(QDataWidgetMapper::ManualSubmit); mapper->addMapping(editInvoice.lineEditNumberInvoice, 1); mapper->addMapping(editInvoice.doubleSpinBoxExchenge, 2); mapper->addMapping(editInvoice.doubleSpinBoxDelivery, 3); mapper->setCurrentModelIndex(index); if ( editInvoice.exec() == QDialog::Accepted ) mapper->submit(); else mapper->revert(); return;}
void MClass::paint ( QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index ) const{ // дотягиваемся до элемента таблицы через index и вытаскиваем из него double-значение. // допустим, мы положили double-значение в переменную value double value; ... value=...; drawDisplay(painter, option, option.rect, QString("%1").arg(value, 0, 'g', 15));}
void QmyDsbDelegate::paint ( QPainter *painter, const QStyleOptionViewItem& option, const QModelIndex& index ) const { QString text; QRect rect; QVariant value; QStyleOptionViewItemV2 opt = setOptions(index, option); value = index.data(Qt::DisplayRole); text = QLocale().toString(value.toDouble(), 'f', 2); opt.displayAlignment = Qt::AlignRight | Qt::AlignVCenter; drawDisplay(painter, opt, opt.rect, text);