gtk connect Funktion mit Zugriff auch nicht existeriende

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
martinjo
User
Beiträge: 189
Registriert: Dienstag 14. Juni 2011, 20:03

Hallo

ich habe ein Problem mit dem zuweisen von Knöpfen zu einer Funktion. In der Init-Funktion meiner Klasse werden alle Knöpfe und Felder angelegt. Die Knöpfe werden auch direkt mit einer Funktion verbunden, welche verschiedene Checkboxen prüft und anhand dessen bestimmte Felder aktiv oder inaktiv setzt.

Nun werden diese Felder jedoch teilweise erst nach dem erstellen des Knopfes definiert. Ich gehe das gerne der Reihe nach durch von oben nach unten. Der Knopf kann ja auch erst zum Ende des Aufbauprozesses der Oberfläche genutzt werden, darum wundert es mich, dass ich dort eine Fehlermeldung bekomme.

http://pastebin.com/q6pHZ8Rp

Code: Alles auswählen

INFO:	set_options_sensitivity
Traceback (most recent call last):
  File "tph_export_tool.py", line 554, in set_options_sensitivity
    self.export_shop_quantity.set_sensitive(1)
AttributeError: TPHExportTool instance has no attribute 'export_shop_quantity'
INFO:	set_options_sensitivity
Traceback (most recent call last):
  File "tph_export_tool.py", line 554, in set_options_sensitivity
    self.export_shop_quantity.set_sensitive(1)
AttributeError: TPHExportTool instance has no attribute 'export_shop_quantity'
BlackJack

@martinjo: Du benutzt nach dem Verbinden des 'toggle'-Signals `set_active()`, wenn sich dabei der Zustand ändert wird das 'toggle'-Signal ausgelöst. Das sagt auch die Doku: https://developer.gnome.org/gtk3/stable ... set-active
Benutzeravatar
martinjo
User
Beiträge: 189
Registriert: Dienstag 14. Juni 2011, 20:03

Danke für die Lösung !

Ich verbinde also in diesem Fall besser erst nach dem setzen:

Code: Alles auswählen

        self.webshop_checkbutton = gtk.CheckButton("_Webshop")
        self.webshop_checkbutton.set_active(True)
        self.webshop_checkbutton.connect("toggled", self.set_options_sensitivity)
Antworten