GTK sur plusieurs fichier sources.
Bonjour, conscient que ma question va en faire rire plus d'un !! :-) ...
Donc voila.
je travail avec le couple Glade GTK.
Dans le cadre d'un projet j'aurai besoin de travailler par exemple sur les fichier suivant :
lang.glade = Le fichier XML glade
Interface.py = l'import du fichier glade et les définition des Events
Commun.py = divers fonction
Comment je peut faire pour par exemple changer le label d'un bouton depuis une classe dans le fichier commun.py
En gros je met quoi a la place des trois petit point rouge dans le fichier commun.py dans l'exemple si dessous .
Ne vous attacher pas trop a la forme je ne sait même pas si mon ex.: est pleinement fonctionnel.
Pour ce qui est de la partie glade dans le fichier Interface ... ça fonctionne sans problème.
Merci pour vos solution, vos conseil, n'hésitez pas a remettre les base en place lol :-) ...
P.S: Je crois que j'ai un peut tout essayer je deviens fous lol :-) ...
Au plaisir de vous relire.
@RCR
je vous met un exemple de code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
#Fichier Interface.py#
import pygtk
pygtk.require("2.0")
import gtk
import gtk.glade
import Commun
class monprogramme:
def __init__(self):
self.widgets = gtk.glade.XML('lang.glade',"window1")
self.autoConnect()
def __getitem__(self, key):
return self.widgets.get_widget(key)
def autoConnect(self):
eventHandlers = {}
for (itemName,value) in self.__class__.__dict__.items():
if callable(value) and itemName.startswith('gtk_'):
eventHandlers[itemName[4:]] = getattr(self,itemName)
self.widgets.signal_autoconnect(eventHandlers)
def gtk_delete(self, source=None, event=None):
gtk.main_quit()
def gtk_on_Play_clicked(self, source=None, event=None):
test.Fnc_Commun().change_label()
return True
#if __name__ == '__main__':
app = monprogramme()
gtk.main() |
----------------------------------
Code:
1 2 3 4 5 6 7 8
|
#Fichier Commun.py
from interface import *
class Fnc_Commun() :
def change_label(self):
'...'.set_label('GENIAL') |