QT Events erzeugen



  • Hallo,

    ich hab bisher im BCB programmiert und versuch mich seit neustem mit dem QT Creator auseinander zu setzten.

    Die vorhanden Komponenten bieten ja relativ wenig Slots wenn ich das so richtig sehe. Ich würde gerne für ein QLineEdit ein DoubleClick Event erzeugen. Wenn ich das im Internet richtig verstanden habe muss ich dafür eine neue Klasse erzeugen die von QLineEdit abgeleitet wird. Das ist soweit ja auch alles kein Problem.
    Wie kann ich aber die Abgeleitet Klasse im QT Designer verwenden? Muss ich dafür immer eine neue Komponente also ein neues Projekt mit allem drum und dran erzeugen?

    ich habe bei Google relativ wenig Informationen dazu gefunden. Meistens findet man immer nur CodeSnipsel die ich nicht ganz zusammengefügt bekomme.

    Über den QT Designer findet man meiner Meinung nach eh sehr wenig Infos? Arbeiten die Leute nicht damit?



  • Du kannst die Widgets promoten:

    http://qt-project.org/doc/qt-4.8/designer-using-custom-widgets.html

    Mache ich aber relativ selten. Wenn ich eigene Komponenten reinhängen will, sind die meisten komplexer und dann füg ich sie zur Laufzeit in das Layout ein.



  • Warum denn ableiten? Was GENAU willst du erreichen? Nur einen DoubleClick künstlich erzeugen?
    Wenn es letzteres ist: Doku -> QMouseEvent -> QCoreApplication::postEvent() (oder sendEvent)



  • Ableiten würde ich weil ich sonst keine sinnigen Infos gefunden habe. Wenn es anders geht gerne.

    Erreichen will ich das ein Event/Funktion/Slot oder wie auch immer man das jetzt nennen mag ausgelöst wird wenn ich auf eine Komponente (bzw. Widget) klicke oder Doppelklick mache und bei QLineEdit oder anderen Editierbaren Komponenten wäre es nicht schlecht wenn man noch KeyPress Events hätte mit denen man erfährt welche Taste gedrückt wurde.

    Ich bin vielleicht etwas BCB verwöhnt aber wenn viele Leute den QT Creater so anpreisen muss da doch auch was hinter stecken. Leider sehe ich momentan nur das man leider sehr viel erst mal selber Programmieren muss und leider "not included" ist.

    Ich glaub ich schweife ab...

    wie würde denn eine Lösung aussehen, wenn wir mal bei dem Beispiel mit dem Doppelklick bleiben? Da ja



  • Aha - du willst nicht künstlich Events ERZEUGEN sondern du möchtest auf einzelne Events während der Interaktion mit dem Widget REAGIEREN. völlig verschiedene Sachen.

    Ferdinat schrieb:

    Erreichen will ich das ein Event/Funktion/Slot oder wie auch immer man das jetzt nennen mag ausgelöst wird wenn ich auf eine Komponente (bzw. Widget) klicke oder Doppelklick mache und bei QLineEdit oder anderen Editierbaren Komponenten wäre es nicht schlecht wenn man noch KeyPress Events hätte mit denen man erfährt welche Taste gedrückt wurde.

    Dumme Gegenfrage: Warum wäre das sinnvoll? Doppelclick selektiert - und QLineEdit bietet das SIGNAL selectionChanged(). keyPress fügt chars ein/löscht welche, ändert den Text -> textChanged() SIGNAL. Also: für was brauchst du soooo feine Infos über die Interaktion? Wenn es von lokalem Interesse ist brauchst du hier nur mit eventFilter arbeiten. Wenn mehrere verschiedene Klassen/Komponenten DIREKT beim QLineEdit diese Informationen erhalten MÜSSEN ist ABleiten sinnvoll.

    Du siehst, so einfach lässt sich deine Frage nicht beantworten. Kommt auf deinen Fall an.


Anmelden zum Antworten