Window (ID) als QWidget ansprechen um Signal zu senden
Hi zusammen, ich habe in meinem Programm eine ID eines Windows abgefragt und möchte nun gerne dieses Window wie ein QWidget ansprechen, um Signale an dieses Window schicken zu können. Nur wie kann ich das machen? Ich möchte z.B. sagen: Schicke ein KeyPressedEvent mit dem Ascii Zeichen "E" an das Window. Mit XSendEvent ist das zwar möglich, jedoch würde es mich interessieren, ob ich entsprechende Möglichkeiten mit QT habe. Meine Idee war eben, diese Window ID als QWidget anzusprechen und dann einfach bestimmte Slots wie eben KeyPressed mit einem bestimmten QKeyEvent aufzurufen. Hat da jemand eine Idee? Mike
Am Freitag, 18. April 2003 00:31 schrieb Michael Gebhart:
ich habe in meinem Programm eine ID eines Windows abgefragt und möchte nun gerne dieses Window wie ein QWidget ansprechen, um Signale an dieses Window schicken zu können. Nur wie kann ich das machen? Ich möchte z.B. sagen: Schicke ein KeyPressedEvent mit dem Ascii Zeichen "E" an das Window. Mit XSendEvent ist das zwar möglich, jedoch würde es mich interessieren, ob ich entsprechende Möglichkeiten mit QT habe.
Ja, mit XSendEvent(). ;-)
Meine Idee war eben, diese Window ID als QWidget anzusprechen
Geht nicht. Wie Du ja selber sehr richtig bemerkt hast, ist ein X-Window eine ID, die eine Ressource innerhalb des X-Servers spezifiziert. Ein Widget ist ein (Zeiger auf) eine lokale Datenstruktur im X-Client (Deinem Programm). Du kannst zwar von einem QWidget die Window-ID bestimmen, aber das geht rückwärts nicht: Nicht jedes Window kommt ja von einem QWidget, und der X-Server weiß überhaupt nichts von Widgets - und von QWidgets schon gar nicht.
und dann einfach bestimmte Slots wie eben KeyPressed mit einem bestimmten QKeyEvent aufzurufen. Hat da jemand eine Idee?
Du mußt Dich entscheiden, ob Du low-level auf X-Ebene programmieren willst
oder high-level auf Qt-Ebene (was sehr viel bequemer ist). Bis auf sehr
wenige Spezialanwendungen würde ich Dir davon abraten, in einem Qt-Programm
auf Xlib-Ebene herunterzugehen.
CU
--
Stefan Hundhammer
Hi Stefan, hab mir schon gedacht, dass das nicht klappen wird, trotzdem vielen Dank. Werde dann wohl bei XSendEvent bleiben :) Grüße Mike
participants (2)
-
Michael Gebhart
-
Stefan Hundhammer