Bonjour,
J'utilise Python/GTK pour réaliser un petit editeur de fichier
Le code
info=open("%s/etc/sec/%s.route" % (i,i))
text1 = info.read()
buffer = self.textview2.get_buffer()
buffer.set_text(text1)
Affiche correctement mon texte, malheuresement apres edition
je ne sais pas comment recuperer le contenu de ma fenetre textview2
et l'injecter dans mon fichier info.
Merci de vos conseils.
# je suis nul en python mais...
Posté par TImaniac (site web personnel) . Évalué à 3.
Je n'y connait rien en python, mais bon celà reste du GTK, tu devrais donc avoir la fonction :
buffer.get_text
qui prend en paramètre 2 TextIter qui représente la position de début et de fin que tu veux "extraire" de ton buffer, le dernier paramètre étant un booléen indiquant si tu veux récupérer les caractères cachés (mais celà à false).
Comment récupérer les TextIter ?
Toujours sur ton buffer, tu as les méthodes get_start_iter, et get_end_iter...
voilà normalement tu devrais pouvoir y arriver avec tout ça bon courage :)
# tuto pour gtk textwiew
Posté par ogotail . Évalué à 1.
mais la syntaxe est tr?s proche du python
http://www.gtk-fr.org/index.php?page=cours&id=21(...)
et pour v?rifier la syntaxe
http://www.pygtk.org/pygtk2reference/class-gtktextview.html(...)
sinon toujours sur gtk et le textview en particulier je n arrive pas a l utiliser avec threading (pas de rafra?chissement) et gtk ce bloque tant que la tache n est pas fini
si vous avez un tutoriel en fr pour le multi-tache sur python je suis preneur
[^] # Re: tuto pour gtk textwiew
Posté par Julien Portalier . Évalué à 3.
FAQ: http://www.async.com.br/faq/pygtk/index.py?req=index(...)
Tutoriel: http://www.pygtk.org/pygtk2tutorial/index.html(...)
Référence: http://www.pygtk.org/pygtk2reference/index.html(...)
Pour le threading, c'est un peu délicat. Il y a plusieurs réponses dans la PyGTK FAQ, suivant les types de situations :
3.7 While my callback is executing, nothing is refreshed in the application windows! ( http://www.async.com.br/faq/pygtk/index.py?req=show&file=faq03.(...) )
20. The GTK Mainloop and Threading
L'une d'entres elles consiste à faire croire à l'utilisateur que GTK tourne toujours en le forçant à effectuer les tâches qu'il a en stock... Ça peut être pratique, mais c'est pas du threading. Généralement cette méthode est pratique pour mettre à jour des informations dans les fenêtres GTK quand on est dans un callback un peu (beaucoup) très long.
Sinon, on peut aussi initialiser le système de thread pour qu'il soit plus GTK aware (et inversement). Ça se passe au moment de l'initialisation de GTK. Au lieu d'utiliser seulement gtk.main() pour lancer la loop principale, on lance le mode threads avant et on le quitte après. C'est pas encore tout à fait le top, mais apparemment ça a l'air de marcher dans mes applis...
gtk.gdk.threads_init()
gtk.gdk.threads_enter()
gtk.main()
gtk.gdk.threads_leave()
[^] # Re: tuto pour gtk textwiew
Posté par ogotail . Évalué à 1.
le probleme de la FAQ c est quelle est en anglais :'(
et pour le tutoriel une partie est deja traduite en francais => http://philoulaloutre.free.fr/tutorielpygtk/index.html(...)
mais il est moins claire que celui que j ai donner dans mon precedant poste (malgres qu il soit pour du c)
# Merci à tous
Posté par Frederic Bourgeois (site web personnel) . Évalué à 1.
J'ai un deuxieme petit soucis
J'essaye d'ecrire dans un fichier mais impossible de l'ouvrir
avec l'option write en utilsant %s
En lecture pas de soucis:
info=open("%s/etc/sec/%s.route" % (name,name))
En ecriture (j'ai essaye diverses syntaxe ...):
info=open(""%s/etc/sec/%s.route","w"" % (name,name))
Syntax error
Par contre en utilisant le nom de fichier pas de probleme
info=open("toto/etc/sec/toto.route", "w")
[^] # Re: Merci à tous
Posté par Frederic Bourgeois (site web personnel) . Évalué à 1.
info=open(("%s/etc/sec/%s.route" % (name,name)) ,'w')
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.