Archiv verlassen und diese Seite im Standarddesign anzeigen : QLineEdit.focusOutEvent??
Hans-Georg Normann
27-09-2002, 21:53
Ist hier vielleicht jemand, der mir erzählen kann, wie man ein QLineEdit::focusOutEvent erzeugt (am liebsten im QT designer).
Folgendes Prob: der User gibt ein Verzeichnis in das Feld ein. Beim Verlassen soll geprüft werden, ob dieses Verzeichnis auch existiert.
Das ganze wird mit pyuic für Python aufbereitet. Oder hat jemand einen anderen Vorschlag?
Hans
anda_skoa
28-09-2002, 10:45
Dafür brauchst du eine von QLineEdit abgeleitete Klasse, in der focusOutEvent überschrieben wird.
Ob der Designer abgeleitete Klassen kann, weiß ich leider nicht.
Wäre es nicht einfacher/besser, wenn du den Ihnalt prüfts, wenn zB ein Button geklickt wird, oder so?
Ciao,
_
Hans-Georg Normann
28-09-2002, 17:53
Eigentlich sollte ein Wert dann geprüft werden, wenn er fertig eingegeben wurde. Ich gehe mal davon aus, daß wenn das Eingabe Element verlassen wird, sollte der Wert OK sein. Ich finde es keine Gute Idee, wenn man 20 Werte zu prüfen hat, diese erst mit Knopfdruck zu prüfen (So mache ich es aber momentan!).
Dazwischen liegen einige Telefonate und u. U. auch einmal Kaffee kochen, sprich ein ganze Menge Zeit.
Mir geht es aber auch ein wenig ums Prinzip. Ich will's doch lernen. Wenn wer will, hier (http://www.normann-live.de/HansGeorg/python/NorPyTar/NorPyTar.tar.gz) liegt mein sourcecode (wenn auch schon ne ältere Version). *.ui ist mit dem Designer gemacht. Der gleiche Dateiname wurde mit pyuic übersetzt.
Ich habe gesehen, das der designer Vorwärtsdeklarationen beherrscht. Ich weiß zwar nicht, wofür das gut ist, aber hilft das weiter?
Hans
anda_skoa
29-09-2002, 21:37
Original geschrieben von Hans-Georg Normann
Eigentlich sollte ein Wert dann geprüft werden, wenn er fertig eingegeben wurde. Ich gehe mal davon aus, daß wenn das Eingabe Element verlassen wird, sollte der Wert OK sein.
Es könnte auch ein anderes Fenster aktiv geworden sein, eine Fehlermeldung die aufpopt, etc.
Ich habe gesehen, das der designer Vorwärtsdeklarationen beherrscht. Ich weiß zwar nicht, wofür das gut ist, aber hilft das weiter?
Nicht wirklich.
Um ein FocusEvent zu bekommen, muß man den Eventhandler dafür in einer Subklasse überschreiben.
Und damit kommt dann der Designer nicht so gut zu recht.
Eine Alterntive ist noch ein Event Filter.
Das ist eine QObject Subklasse, in der man eine spezielle Methode implementiert und die dann am zu überwachenden Objekt als Event Filter installiert wird.
Dann erhält diese Methode alle Events bevor sie das anderen Objekt bekommt.
Aber ich halte die Idee mit dem Focus nicht für so gut. (siehe oben)
Vielleicht connectest du einfach an das textChanged Signal und überprüfst den aktuellen Inhalt immer dann, wenn sich die Anzahl der / geändert hat.
Ciao,
_
Hans-Georg Normann
29-09-2002, 23:14
mmhhh,
gefällt mir nicht unbedingt. Riecht si ein bisschen danach, als wenn die jetzige Lösung schon die endgültige wäre. Könnte mit einem Butten einen eigenständigen Syntaxcheck durchführen. das wärs dann auch schon fast.
wollen mal schauen wie das Projek angenommnen wird. find, dd, cpio würden mich auch noch interessieren.
THX
Hans
anda_skoa
30-09-2002, 10:32
Ich denke, das passt schon so.
Du hast ja bei jedem Pfad einen Button für "Browse directory" (oder wie immer du das nennst.
Wenn ein User de Pfad lieber direk eingibt, dann kann er auch alle Pfade auf einmal checken (am Ende mit einem Button)
Ciao,
_
TheDodger
30-09-2002, 13:47
Wir haben das hier in der Firma so genauso benötigt ...
Wir haben uns dafür - weil wir noch ein paar mehr dinge benötigten - eine eigene Klasse geschrieben, wo wie das FocusIn/Out Event abfangen, verbiegen und dann das von der abgeleiteten Form (also QLineEdit) aufrufen.
Das ganze wurde als Plugin konzipiert und somit ist es auch im Designer benutzbar :)
Im Moment ist der Code noch nicht ganz frei ... aber ich habe mir den FocusIn/Out Kram für meine eigenen Projekte doch rausgenommen ... (und noch ein paar Kleinigkeiten mehr ... )
Wenn ich meinen Internetanschluß & meinen Rechner wieder zur Verfügung habe, packe ich das mal in ein Archiv, das dauert aber noch bin mindestens 11.10.
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.