Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zum Ableiten von Qt Widgets
TheDodger
10-12-2003, 07:22
Ich bin grad dabei mal wieder etwas mit eigenen Qt Widgets zu machen.
Dabei habe ich ein etwas schwer zu beschriebendes Problem ...
Als Beispiel nehme ich mal ein QSpinBox Widget.
Das Widget soll beim Erhalt des Focus (egal ob über Tastatus oder Maus) farbig hervorgehoben werden.
Bei einem QLineEdit kann man dazu das FocusInEvent / FpcusOutEvent überladen und das klappt.
Bei der QSpinBox geht es nicht, was auch logisch ist, da dieses Widget ja auch aus mehreren zusammengesetzt ist.
Ich bekomme zwar einen Zeiger auf das eingesetzte QLineEdit (über editor() ), aber es ist relativ egal, was ich damir mache, es zeigt keine Wirkung ...
Hat jemand einen logischen Ansatz dafür?
anda_skoa
10-12-2003, 14:45
Original geschrieben von TheDodger
Ich bekomme zwar einen Zeiger auf das eingesetzte QLineEdit (über editor() ), aber es ist relativ egal, was ich damir mache, es zeigt keine Wirkung ...
D.h. eine Farbänderung wird nicht dargestellt, oder der LineEdit bekommt keinen Focus?
Ciao,
_
TheDodger
11-12-2003, 04:40
Ersteres.
Im nächsten Step möchte ich (ich brauche es eher) die SpinBox so aufbohren, das nicht nur nur Zahlen ohne Komma dargestellt werden können, sondern auch welche mit.
anda_skoa
11-12-2003, 09:53
Original geschrieben von TheDodger
Ersteres.
Hmm.
Vielleicht wird das vom Style überschrieben, oder von der ColorGroup/Palette der SpinBox.
Kannst ja mal probieren, dort auch den Wert zu setzen.
Sonst wird man wohl einen entsprechenden Style machen müssen.
Im nächsten Step möchte ich (ich brauche es eher) die SpinBox so aufbohren, das nicht nur nur Zahlen ohne Komma dargestellt werden können, sondern auch welche mit.
Die QSpinBox kann nur int Werte.
Wenn du mit fixer Nachkommastellenanzahl auskommst, kannst du mit skalierten Werten arbeiten.
Die Methoden mapValueToText und mapTextToValue erlauben dir, es darzustellen wie du möchtest.
Bei beliebigen Fließkommazahlen musst du dir ein neues Widget machen.
In KDEUI gibts glaub ich ein KDoubleNumInput, wahrscheinlich ein LineEdit und zwei Buttons.
Ciao,
_
TheDodger
11-12-2003, 12:43
Original geschrieben von anda_skoa
Hmm.
Vielleicht wird das vom Style überschrieben, oder von der ColorGroup/Palette der SpinBox.
Kannst ja mal probieren, dort auch den Wert zu setzen.
Schon probiert ...
Aber es funktioniert noch, da de FocusInEvent auf dem integrierten QLineEdit liegt und nicht auf die QSpinBox.
Da habe ich keine Ansatzmöglichkeit.
Sonst wird man wohl einen entsprechenden Style machen müssen.
Wenn ich wüsste wie ... ;)
Die QSpinBox kann nur int Werte.
Wenn du mit fixer Nachkommastellenanzahl auskommst, kannst du mit skalierten Werten arbeiten.
Die Methoden mapValueToText und mapTextToValue erlauben dir, es darzustellen wie du möchtest.
Bei beliebigen Fließkommazahlen musst du dir ein neues Widget machen.
In KDEUI gibts glaub ich ein KDoubleNumInput, wahrscheinlich ein LineEdit und zwei Buttons.
Die schau ich mir mal in Ruhe an ... ich sitz die woche extern beim kunden ...
anda_skoa
11-12-2003, 14:05
Original geschrieben von TheDodger
Aber es funktioniert noch, da de FocusInEvent auf dem integrierten QLineEdit liegt und nicht auf die QSpinBox.
Da habe ich keine Ansatzmöglichkeit.
Du kannst jederzeit das FocusInEvent des Lineedits durch einen Eventfilter am Lineedit bekommen.
Theoretisch sollte die QSpinBox sogar der FocusProxy des Lineedits sein.
Ciao,
_
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.