Solved Set QLineEdit nur fün double Zahlen, die nicht grösse als 5.0 sind beim Qt4
-
Hallo,
wie setze ich das QLineEdit, dass es nur double Zahlen (nicht gösse als 5.0) editierbar sind?
Ich habe es folgende versucht:
ui.myLineEdit->setVoltage (new QDoubleValidator(0,5, 2, this));
aber somit kann ich nur zeichen verhindern
Danke in voraus
-
-
gedanklich war ich richtig aber was geschrieben ist falsch
:-)QRegExp rx("[0-4].[0-9]"); ui.myLineEdit(new QRegExpValidator(rx, this));
So muss es passen oder?
-
Das stimmt wieder nicht ganz:
QRegExp rx("[0-4].[0-9]"); ui.myLineEdit->setValidator((new QRegExpValidator(rx, this));
aber ich kann doch 123 eingeben und das muss verhindert werden.
-
@Galilio mal ganz dumm gefragt,
warum muss es denn ein QLineEdit sein?Für einen
double
würde ich QDoubleSpinBox nehmen.setRange(double min double max)
&
setSingleStep(double val)
brauchst du dann nur für die Konfiguration
Wess es um's aussehen geht, kannst du das locker wie nen QLineEdit aussehen lassen, via QStyleSheet.
-
Du hat vollkommen recht.
Es macht sinn der QDoubleSpinBox zu nehmen.
Wegen das aussehen wie stelle es das in QtDesigner, dass es genau wie QlineEdit aussieht?Danke
-
@Galilio
schau mal hier sind Beispiele wie man QStyleSheet nutzen kann. Ich hab mal eben das Beispiel vonQSpinBox
genommen und auf das hier reduziert:QDoubleSpinBox { padding-right: 15px; /* make room for the arrows */ border-width: 3; } QDoubleSpinBox::up-button { subcontrol-origin: border; subcontrol-position: top right; /* position at the top right corner */ width: 16px; /* 16 + 2*1px border-width = 15px padding + 3px parent border */ border-image: url(:/images/spinup.png) 1; border-width: 1px; } QDoubleSpinBox::down-button { subcontrol-origin: border; subcontrol-position: bottom right; /* position at bottom right corner */ width: 16px; border-image: url(:/images/spindown.png) 1; border-width: 1px; border-top-width: 0; }
sieht schon sehr nach QLineEdit aus.
Ich denke die Buttons werden nicht gezeichnet, weil die border-images nicht existieren.