Kreuz Knopf am Fenster deaktivieren

Programmierung für GNOME und GTK+, GUI-Erstellung mit Glade.
Antworten
gugugs
User
Beiträge: 113
Registriert: Dienstag 30. Dezember 2008, 12:38

An Knöpfe, kann man ja mit dem befehl "set_sensitive(False)" die Knöpfe deaktivieren, beziehungsweise graus werden lassen, wie kann ich das genau in dem Stil mit einem Schließen Kreuz in einem Fenster machen?
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

``window.set_deletable(False)``. Das kann, muss aber nicht unbedingt funktionieren und ist sehr stark von der Umgebung abhängig, in der das Programm ausgeführt wird.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
gugugs
User
Beiträge: 113
Registriert: Dienstag 30. Dezember 2008, 12:38

Hm, also bei mir funktioniert es nicht... Ich benutze Linux, falls das von Bedeutung ist. Habe schon Programme gesehen, wo das Kreuz da oben auch so Grau also nicht klickbar ist. Geht das nicht so? Beziehungsweise an was liegt es, dass dieser Befehl bei mir überhaupt nicht geht?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

gugugs hat geschrieben:Beziehungsweise an was liegt es, dass dieser Befehl bei mir überhaupt nicht geht?
Am Windowmanager. Der zeichnet die Fensterdekorationen zu denen auch die Titelleiste gehört und dem steht es frei die Titelleiste wie er will zu machen. Er kann zum Beispiel gar keine solche Leiste bereitstellen, wie das viele Tiling-Manager machen oder 25 Buttons reinsetzen. Somit kann die Applikation den WM nur bitten das so zu machen, aber wie der WM das dann letztendlich macht bleibt ihm überlassen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

gugugs hat geschrieben:An Knöpfe, kann man ja mit dem befehl "set_sensitive(False)" die Knöpfe deaktivieren, beziehungsweise graus werden lassen, wie kann ich das genau in dem Stil mit einem Schließen Kreuz in einem Fenster machen?
Ich vermute mal, dass es dir letztlich weniger darum geht, dass du das Kreuz in grau sehen kannst, sondern vielmehr darum, dass das Fenster sich beim Klick darauf nicht schließt. Dann sollte man vielleicht dort ansetzen und das close-/destroy-Event abfangen - ich gehe mal davon aus, dass so etwas mit gtk möglich ist (leider verstehe ich nichts von gtk).

Das folgende Beispiel sollte helfen: http://docs.huihoo.com/pygtk/2.0-tutori ... eaction.py

Edit: Hier steht, wie es geht: http://www.pygtk.org/pygtk2tutorial/ch- ... HelloWorld
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

numerix hat geschrieben:Ich vermute mal, dass es dir letztlich weniger darum geht, dass du das Kreuz in grau sehen kannst, sondern vielmehr darum, dass das Fenster sich beim Klick darauf nicht schließt. Dann sollte man vielleicht dort ansetzen und das close-/destroy-Event abfangen - ich gehe mal davon aus, dass so etwas mit gtk möglich ist (leider verstehe ich nichts von gtk).
Das ist Standardverhalten von GTK. Wenn du ``delete_event`` nicht abfängst, geht das Fenster gar nicht erst zu, obwohl der "Schließen"-Button in der Titelleiste durchaus da ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
gugugs
User
Beiträge: 113
Registriert: Dienstag 30. Dezember 2008, 12:38

Ja ich weiß, das ist auch kein Problem mit dem Abfangen, hätte das Kreuz halt gerne schön grau gehabt :wink:

Hätte gedacht, dass das nicht so ein Problem ist, denn bei den Knöpfen ging es ja auch nicht so schwer. Aber wenn das alles so ist, werde ich den Knopf wohl so deaktivieren müssen.

Trotzdem Danke
Antworten