Anzeige:
Ergebnis 1 bis 5 von 5

Thema: [CPP] Auf tastendruck warten?

  1. #1
    Registrierter Benutzer
    Registriert seit
    03.07.2003
    Beiträge
    33

    [CPP] Auf tastendruck warten?

    Hi!
    Ich mache derzeit meine ersten C++-Erfahrungen und möchte gerne ein Programm schreiben, dass auf Druck einer Taste/Tastenkombination eine bestimmte Aktion ausführt, zum Beispiel einen sound spielen... Leider kenne ich nur die funktion "cin" aber diese ist völlig ungeeignet, da sie ein abschliessendes "Enter" erfordert und auch nur funktioniert wenn das Programm in einer shell und im Vordergrund ist... Es müsste eher im Systray sitzen oder so (wobei es aber doch bestimmt probleme mit unterschiedlichen WMs gäbe oder?).
    Danke für jede hilfe.

    greets, delmonico

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Eine GUI Application ist ohnehin Eventbasiert, also gibt es dort auch Key Events.

    Welches Toolkit benutzt du/möchtest du benutzen?

    Für C++ werd ich mal Qt empfehlen

    Systemtray ist zum Teil abhängig vom WM.
    Es gibt für Notifications eine übergreifende Spezifikation, aber das beinhaltet eben nur Statusanzeigen, etc.

    Der Dockbereich, wo man auch klicken kann, wird dann von den Panel zur Verfügung gestellt.
    Bei Kicker ist das auch der Systemtray, beim GNOME Panel weiß ich's nicht.

    Allerdings bekommt eine gedockte Application praktisch nur die Events auf ihrme Dockicon, also Mouse Events.

    KeyEvents bekommt nur die Application mit dem Keyboard Focus.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    03.07.2003
    Beiträge
    33
    Danke das hilft schonmal sehr, werd mich dann mal in QT einarbeiten... Aber folgendes macht mich noch unsicher:
    "KeyEvents bekommt nur die Application mit dem Keyboard Focus."

    Können den Keyboard Focus denn mehrere Apps haben? Weil meine müsste ihn dann ja immer haben, damit sie auch funktioniert wenn ich in einem ganz anderen Programm arbeite oder?

    mfg, del

  4. #4
    Registrierter Benutzer
    Registriert seit
    20.06.2003
    Beiträge
    10
    Nein, mehrere Programme können schlecht gleichzeitig den Fokus haben -- dann bräuchtest du schon zwei Mäuse, und das macht sich schlecht in den Hardware-Anforderungen :-]
    Malte, konvenkita esperantisto kaj linuksano.

  5. #5
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Wahrscheinlich kann man sich irgendwie in die X11 Event queue oder ähnliches "einschalten".

    In KDE gehen ja die globalen Keys auch immer.

    Wie das im Detail geht, entzieht sich allerdings meiner Kenntnis.

    Eventuell gibt es in in KDE sogar einfachere Methoden, bestimmte Keysequences global zu registrieren.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •