GTK# - key-press-event?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

GTK# - key-press-event?

Beitrag von BeS » 10.11.2004 19:15:56

Hallo,
ich bin gerade am verzweifeln.
Ich habe ein kleines Programm, wo ich beim drücken der return Taste in einem SpinButton einen Button.click auslösen will.
Ich habe mit glade das "key_press_event" des Gtk.SpinButtons mit "on_Spinbutton_key_press_event" verknüpft.

Die Funktion sieht so aus:

Code: Alles auswählen

void on_Spinbutton_key_press_event(object obj, 
                                                      KeyPressEventArgs args)
    {
        if (args.Event.Key == Gdk.Key.Return)
            CalculateButton.Click();
    }
leider funktioniert es nicht. :(

Zum Test habe ich die if Abfrage mal durch ein einfaches System.Console.WriteLine("Click!"); ersetzt, damit ich auf der Konsole sehe wann diese Funktion aufgerufen wird.
Damit habe ich festgestellt, dass die Funktion garnicht bei allen Tasten aufgerufen wird. Wenn ich z.B. die F-Tasten, tab, esc drücke wird die Funktion aufgerufen, drücke ich dagegen einen Buchstaben, Zahl oder Return wird die Funktion nicht aufgerufen. :roll:

Kann mir jemand sagen was ich falsch mache?

Danke!
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
dmeister
Beiträge: 258
Registriert: 05.07.2002 08:01:53
Wohnort: Zürich
Kontaktdaten:

Beitrag von dmeister » 11.11.2004 14:01:07

Hi BeS

So direkt kann ich dir auch keine Antwort darauf geben. Sollte m.E. nach eigentlich funktionieren ...

Wie dem auch sei: Wenns dir nur darum geht, ENTER abzufangen, kannst du auch einen Handler für den activate-Event schreiben.

Gruss,

Dominik
Jabber: neptoon@jabber.org
It's only Rock'n'Roll but I like it

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 11.11.2004 14:23:34

Hallo!
Danke, das funktioniert und ist ja fast noch einfacher, weil man nicht die Tasten abfragen muß.
Aber eigentlich müsste der andere Weg doch auch gehen, zumindest funktioniert es in einem etwas älteren GTK+ (C) Programm von mir...

Egal, hauptsache eine Lösung ;)
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
dmeister
Beiträge: 258
Registriert: 05.07.2002 08:01:53
Wohnort: Zürich
Kontaktdaten:

Beitrag von dmeister » 11.11.2004 14:37:45

Ja, bin auch der Meinung, dass es funktionieren würde. Arbeite mich im Moment auch etwas in Mono/GTK# ein, und habe auch ein paar Ungereimtheiten gefunden.

Trotzdem: Bisher gefällt mir das Ganze recht gut.
Jabber: neptoon@jabber.org
It's only Rock'n'Roll but I like it

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 11.11.2004 16:57:26

Mono und GTK# gefällt mir bis jetzt auch ganz gut. Der für mich bisher beste Weg GTK+ Anwendungen zu erstellen.
Allerdings merkt man halt an manchen stellen doch noch dass das ganze sehr jung ist. Aber ich denke mono entwickelt sich ganz gut, so das es sich durchaus lohnt sich damit zu beschäftigen.

PS: Hast du auch schonmal Programme auf windows laufen lassen?
Also bei einem HelloWorld Programm hat es bei mir noch funktioniert, aber das Programm das ich jetzt geschrieben habe (ist eigentlich auch noch klein) lässt sich unter windows nicht starten. Schade finde ich auch das ich es unter windows nicht direkt über die exe Datei starten kann, warum verwendet man dann überhaupt diese dumme Endung, und das immer ein konsolen-Fenster im Hintergrund gestartet wird.
Aber windows ist mir eigentlich nicht so wichtig, wenn ich mit mono saubere GTK+ und gnome Programme erstellen kann, dann bin ich zufrieden. :)
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
dmeister
Beiträge: 258
Registriert: 05.07.2002 08:01:53
Wohnort: Zürich
Kontaktdaten:

Beitrag von dmeister » 11.11.2004 17:19:19

Nein, auf Windows hab ichs noch nicht ausprobiert. Aber stimmt, wenns nicht einfach so läuft auf Windows, könnte man auf die hässlichen .exe und .dll auch verzichten :lol:

Sonst kann ich dir noch das "Mono Developers Notebook" [1] von Edd Dumbill empfehlen (falls du es nicht schon hast). Ist wirklich gut geschrieben und bügelt das Manko der noch etwas spärlichen Mono-Dokumentation aus.

[1] http://www.oreilly.com/catalog/monoadn/index.html
Jabber: neptoon@jabber.org
It's only Rock'n'Roll but I like it

Antworten