J'essaie d'afficher la "sélection" d'une certaine sous-chaîne dans un gtk.TextView en traçant une bordure autour du mot. La seule façon de marquer le texte dans un TextView que j'ai trouvé jusqu'à présent est de placer TextTags avec propriétés modifiées. Cela ne semble pas offrir un moyen de dessiner une bordure, mais , est-ce que GTK supporte cela ou est-ce un problème avec PYGTK ONLTDessiner des lignes sur gtk.TextView
Répondre
J'ai compris comment dessiner sur une vue de texte !!! Pour commencer, supposons que la référence à votre gtk.TextView se trouve dans une variable appelée visualiseur. Dans l'une des classes ur La fonction draw doit également être appelée avec un événement appelé event-event sinon les dessins seront actualisés et ne restera pas à l'écran
la partie suivante est la gtk.TextView se compose de 7 types de gtk.gdk.windows sur lequel u peut tirer
gtk.TEXT_WINDOW_WIDGET
gtk.TEXT_WINDOW_TEXT
gtk.TEXT_WINDOW_LEFT - not displayed by default
gtk.TEXT_WINDOW_RIGHT - not displayed by default
gtk.TEXT_WINDOW_TOP - not displayed by default
gtk.TEXT_WINDOW_BOTTOM
gtk.TEXT_WINDOW_PRIVATE
pour le dessin à apparaître sur gtk.TextView Nous devons tirer sur gtk.TEXT_WINDOW_TEXT
Un exemple de code est comme illustré ci-dessous
if(viewer!=None):
viewer.connect("expose-event", expose_view)
self.drawable=viewer.get_window(gtk.TEXT_WINDOW_TEXT)
def expose_view(self,window,event):
if(self.drawable!=None):
self.drawable.draw_line(self.drawable.new_gc(),1,1,30,30)
# (1,1) and (30,30) are the coordinates and u can give the values accordingly
Dans gtk.TextBuffer
balises sont utilisées pour définir un ou plusieurs attributs de texte prédéfini. Sans sous-classe, ceci est limité aux propriétés d'un gtk.TextTag
, et n'inclut rien de semblable à une propriété border ou outline. Il n'y a aucune différence entre PyGTK et GTK + simple à cet égard.
Bien qu'un peu hacky, la meilleure façon de faire ce que vous voulez faire est de se connecter au expose-event
de votre gtk.TextView
, obtenir les coordonnées de votre chaîne et d'en tirer le event.window
, qui est le gdk.Window
de l'événement prévu dans l'exposé rappeler. (Notez que vous n'avez pas besoin d'extraire et de stocker la fenêtre gtk.TEXT_WINDOW_TEXT, il vous suffit de vérifier dans quelle fenêtre l'événement expose est dans le rappel, ignorant probablement l'exposer s'il ne s'agit pas de la fenêtre de texte. Au lieu de cela, vous pourriez probablement sous-classer un ou plusieurs éléments de TextBuffer/TextView/TextTag pour ajouter une balise border
, mais la question est de savoir s'il est raisonnable de le faire.
- 1. Dessiner des images et des lignes sur UIScrollView
- 2. Dessiner des lignes transparentes sur bitmap via l'entrée tactile
- 3. comment dessiner des lignes sur un fond d'image dans pygame
- 4. dessiner des lignes qui dépassent d'un cercle
- 5. Rechercher du texte dans gtk.TextView
- 6. Dessiner Lignes dans le canevas
- 7. Dessiner des lignes et des cercles dans WPF
- 8. Dessiner des graphiques sur l'IPhone
- 9. comment dessiner des surfaces 3D et masquer les lignes invisibles?
- 10. Comment dessiner des lignes sur des cellules dans une grille WPF
- 11. Dessiner des lignes sur une image en utilisant des clics de souris dans C#
- 12. Comment dessiner des lignes lisses dans actionscript 3 (Flash)
- 13. comment dessiner N lignes par pouce?
- 14. Dessiner des lignes diagonales sur une zone de texte en Java
- 15. Dessiner des carrés sur Flex Canvas
- 16. Dessiner des caractères Unicode sur l'iPhone
- 17. Dessiner des graphiques vectoriels sur l'iphone
- 18. iphone: Dessiner sur MKMapView?
- 19. Comment dessiner "sur le dessus" des contrôles hébergés dans .NET?
- 20. MATLAB: dessiner des centroïdes
- 21. Dessiner des carreaux NSImage
- 22. Dessiner des formes ou des images sur une trajectoire courbe
- 23. Dessiner des widgets (tels que des boutons) sur QGraphicsView
- 24. Dessiner des lignes et des remplissages avec une texture de craie dans l'application iPhone
- 25. Dessiner Lignes entre les broches avec iphones Map Kit
- 26. comment dessiner des lignes et des formes sur la zone d'image lors d'un mouvement de souris dans C#?
- 27. pygtk: comment modifier l'arrière-plan d'un widget gtk.TextView
- 28. Dessiner des graphiques personnalisés sur l'iPhone: CALayer vs. CGContext
- 29. Dessinez des lignes pointillées en utilisant Quartz sur iPhone
- 30. Lignes et drawables dessiner l'ordre dans Android Google Maps
Bien que le code ci-dessus a quelques problèmes mineurs, cela a fonctionné pour moi aussi. Je ne dessine pas de lignes (comme du papier ligné) sur le 'fond'. Voir: http://code.google.com/p/key-train/source/browse/keytrain_textview.py –