Ich habe einige Daten in Fixpunkt 16.16, die ich mit einer QDoubleSpinbox ändern möchte.Fill QDoubleSpinBox von Fixpunkt
Das Problem ist, dass, wenn ich meinen Fixpunkt zu einem Doppel konvertiere, das unvermeidliche Rundungsproblem besteht. double = fixed/(double)65536
Nehmen Sie zum Beispiel 0.2
, in festen Punkt ist 0x00003333
, aber wenn ich es in die QDoubleSpinBox legte es zeigt0.19999694824188
.
Aber sobald ich die Spinbox berühre, rundet sie auf 0.2
.
Wie mache ich die QDoubleSpinBox um setValue?
Die QDoubleSpinbox verhält, wie entworfen, aber mein QAbstractTableModel
war es nicht.
Wenn die Steuerelemente der Spinnbox nicht sichtbar sind, verwendet die Tabelle implizit einen QString, um den in QVariant angegebenen Wert anzuzeigen.
Nach der Implementierung der paint()
Funktion mit einer festen Präzision setnum()
in der Qstring, funktioniert es gut!
Siehe die Eigenschaft Dezimalzahlen. Die Spinbox-Runden basieren auf diesem Wert: https://doc.qt.io/qt-5/qdoublespinbox.html#decimals-prop – Felix