Précédent   Forum du club des développeurs et IT Pro > Général Développement > Programmation système > Linux > GTK > PyGTK
PyGTK Forum d'entraide sur PyGTK
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 22/02/2013, 13h20   #1
turboiii
Futur Membre du Club
 
Inscription : mars 2008
Messages : 67
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 67
Points : 19
Points : 19
Par défaut connecteur sur TextView

Bonjour
Je souhaite mettre en oeuvre une fonction dans un TextView, pour en permanence avoir le cursus visible. Par exemple après un copier coller et saisie d'un texte long le curseur finit par être caché. Bon à la main on peut faire circuler le texte avec les ascenseurs (scroll).
J'ai vu dans la FAQ
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
vu dans la FAQ de pygtk
14.10. How do I scroll a TextView to display the text being inserted?
 
When inserting text using insert_at_custor(), it may happen that the text inserted surpasses the textview's current viewport, and requires scrolling.
Gustavo Carneiro and Mikoyan wrote in to suggest using the textbuffer's scroll_to_mark() method, which scrolls to a certain point in the buffer. You can use the get_insert() method to return the current insert position right after inserting if you want to make sure you scroll to the end of the text.
 
  end_iter = text_buffer.get_end_iter()
  text_buffer.insert(end_iter, text)
  text_view.scroll_to_mark(text_buffer.get_insert(), 0)
There is also a simplier method to make sure the text view's cursor is visible:
  text_view.scroll_mark_onscreen(text_buffer.get_insert())
Ma question est comment on met cela en oeuvre
avec un connecteur sur le textview ou bien par quelle autre méthode ?
merci d'avance de votre éclairage sur le sujet.
turboiii est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2013, 18h30   #2
turboiii
Futur Membre du Club
 
Inscription : mars 2008
Messages : 67
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 67
Points : 19
Points : 19
Bon je progresse dans ma solution adopté via les connecteurs. Je me suis rappelé de l'existence des gtk.EventBox() qui sont justement fait pour les widgets qui n'ont pas de connecteur natif si on en a besoin
Sa commence à vivre
ci-dessous ma commande d'activation sollicité par le connecteur
chaque fois que je fais quelque chose dans le TextView elle s'active
Code :
1
2
3
4
5
6
7
8
 
def scroll_to_cursor(self,event,data):
        ''' vérifie que la frappe de texte le curseur soit toujours visible'''
        self.textbuffer = self.TextView.get_buffer() 
        end_iter = self.textbuffer.get_end_iter()
        self.textbuffer.insert(end_iter, '')
        self.TextView.scroll_to_mark(self.textbuffer.get_insert(), 0)
        print 'coucou'
Code :
1
2
3
4
5
6
7
8
9
 
self.TextView = gtk.TextView() # le textView
eventbox = gtk.EventBox()
eventbox.add(self.TextView) 
eventbox.connect('event', self.scroll_to_cursor) 
self.TextView.set_wrap_mode(gtk.WRAP_WORD)
self.textbuffer = self.TextView.get_buffer() # le buffer associé
self.textbuffer.set_text(texte) # texte vient d'un passage de paramètre
Vbox.add(eventbox) # ajout dans la Vbox du gtk.EventBox()
problème scroll_to_cursor ne fait pas bouger le scroll vers l'endroit où se trouve le curseur qui a été caché à un moment donné.
Avez-vous une idée du pb?
turboiii est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 13h36.


 
 
 
 
Partenaires

Hébergement Web