QTableWidgetItem and edit float value > 2 decimal
Solved
General and Desktop
-
Hi everyone!
By default the display and edit mode is 2 decimal precision on tableWidget. I need to 3 decimal.I use setData function of QTableWidgetItem like this:
// quantity is qreal item_QUANTITY->setData(Qt::DisplayRole, m_ilist.quantity.at(i));
-> To show with 3 decimal, I use QStyledItemDelegate class and setItemDelegateForColumn of tableWidget. It's ok!
But how to edit with 3 decimal on tableWidget ?
-
You'll need to override
QStyledItemDelegate::createEditor
and return aQDoubleSpinBox
where you've calledsetDecimals(3);
Something along these lines:
class ItemDelegate : public QStyledItemDelegate { QWidget* ItemDelegate::createEditor(QWidget* parent, const QStyleOptionViewItem& style, const QModelIndex& index) const { QDoubleSpinBox* box = new QDoubleSpinBox(parent); box->setDecimals(3); // you can also set these box->setSingleStep(0.01); box->setMinimum(0); box->setMaximum(1000); return box; } };