Ich habe einen QComboBox
mit einem Validator zugeordnet:Wie überprüft man, ob der Widget-Wert "Acceptable" ist?
QComboBox* cb = new QComboBox;
// ...
cb->setValidator(new QDoubleValidator(0.0, 100.0, 2, this));
diesem Widget einen Schlitz verbunden ist, dass der eingegebene Wert ausgeführt wird, wenn geändert (currentTextChanged()
).
connect(cb, SIGNAL(currentTextChanged(QString)),
this, SLOT(onTextChanged(QString)));
In dieser Konfiguration ausgeführt die onTextChanged()
wird, wenn der Validator Acceptable
oder Intermediate
zurückgibt. Wie kann ich den Slot nur ausführen, wenn der eingegebene Wert wirklich gültig ist (Acceptable
). Oder alternativ, wie kann ich den Validierungsstatus im onTextChanged()
Slot überprüfen? (Seltsamerweise habe ich festgestellt, dass cb->validator()
scheint immer eine nullptr
zurückzukehren.)
"Ich habe festgestellt, dass le-> validator() sieht ms, um immer ein nullptr "le oder cb zurückzugeben? Sie können den Validatorzeiger auch in einer Membervariablen beibehalten. –
@FrankOsterfeld Frage behoben! – mimo
Versuchen Sie, das übergeordnete Element von 'QDoubleValidator' auf' QComboBox cb' anstelle von 'this' zu setzen. – RedX