2013-06-11 13 views
5

Provo a eseguire il porting del mio codice pygtk su gtk3. Viene visualizzato questo errore:argomenti di default rimossi in gtk3?

TypeError: pack_start() takes exactly 5 argument(s) (2 given) 

Si riduce il problema che gli argomenti predefiniti sono stati rimossi.

gtk3 (a cui si accede da python) non supporta gli argomenti predefiniti?

Dal momento che l'applicazione non è grande, mi chiedo se dovrei porta per GTK3 o PySide ...

Rimozione gli argomenti di default sembra un inutile "la creazione di lavoro programma" per i programmatori ...

Non sono riuscito a trovare una buona guida di porting (da pygtk a python-gtk3). Solo questo:

codice come questo è brutto:

box.pack_start(widget, True, True, 0) 

So come cercare + sostituire .... ma io non voglio.

risposta

4

Ci sono due opzioni che posso suggerire. Uno si usa il pygtkcompat compability module. Questa probabilmente non è una buona soluzione a lungo termine.

L'altra opzione è quella di applicare solo il metodo pack_start allo stesso modo del modulo di compatibilità. Qualcosa del genere:

orig_pack_start = Gtk.Box.pack_start 
def pack_start(self, child, expand=True, fill=True, padding=0): 
    orig_pack_start(self, child, expand, fill, padding) 
Gtk.Box.pack_start = pack_start 

Questo presuppone che si desidera applicare solo uno o due metodi. Più di questo ed è probabilmente meglio attenersi al modulo di compatibilità.

Problemi correlati