Retourner aux forums || Retourner au forum Programmation.python
Programmation.python : Textview Python/Gtk
Posté par Miguelito Loveless (page perso, ) le 03 septembre 2004J'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.
> Lire le message (6 commentaires, moyenne: 1,7).
je suis nul en python mais...
Tout se passe dans le buffer, le textview n'est là que pour l'affichage.
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
j utilise ce tutoriel pour gtk (super bien fait) malheureusement il est en c
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 (page perso, ) le 05/09/2004 à 13:40. (lien). Évalué à 3.Vive PyGTK FAQ ! Moi ça me résoud presque tout le temps mes problèmes. Ensuite, il suffit de naviguer dans les docs de PyGTK. Le tutoriel est toujours pratique, mais surtout la référence donne accès à tout ce qu'il faut savoir.
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 () le 05/09/2004 à 19:21. (lien). Évalué à 1.merci bien j avais pas vue les fonction de thread dans gtk
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
Ok ça fonctione avec les méthodes get_start_iter, et get_end_iter.
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 Miguelito Loveless (page perso, ) le 07/09/2004 à 14:34. (lien). Évalué à 1.Tout simplement
info=open(("%s/etc/sec/%s.route" % (name,name)) ,'w')
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.python


Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.