[Python-es] Cómo integrar GtkSourceView en una aplicación
Arnau Sanchez
pyarnau en gmail.com
Lun Mar 1 15:01:23 CET 2010
On 01/03/10 02:42, Andreina Mejia wrote:
> Un amigo me recomendó integrar GtkSourceView
> (http://projects.gnome.org/gtksourceview/index.html) a mi aplicación
> para poder hacer uso de una de las herramientas implementadas en esta
> librería: deshacer/rehacer ilimitado.
GtkSourceView lo usa -entre otros- gedit, así que parece un camino seguro para
hacer algo parecido a un editor de texto.
> En /usr/share/doc/python-gtksourceview2/examples/ aparece un ejemplo
> sobre cómo debe integrarse GtkSourceView a una aplicación, pero sigo sin
> entender.
>
> Éste es el código del ejemplo que aparece en “examples”:
Está bien que estudies el código de ejemplo, pero si no tienes mucha experiencia
con GTK es normal que no entiendas algunas cosas. Te recomendaría empezar un
script de cero e ir complicándolo poco a poco, teniendo siempre un ojo en la
documentación:
http://people.gnome.org/~gianmt/pygtksourceview2/
Para que tengas un punto de partida, lo que comentas (gtksourceview + funciones
undo/redo), se puede hacer así:
import gtk
import gtksourceview2 as gtkview
def on_undo_clicked(button, viewbuffer):
if viewbuffer.can_undo():
viewbuffer.undo()
def on_redo_clicked(button, viewbuffer):
if viewbuffer.can_redo():
viewbuffer.redo()
window = gtk.Window()
viewbuffer = gtkview.Buffer()
view = gtkview.View(viewbuffer)
undo_button = gtk.Button("undo")
undo_button.connect("clicked", on_undo_clicked, viewbuffer)
redo_button = gtk.Button("redo")
redo_button.connect("clicked", on_redo_clicked, viewbuffer)
box = gtk.VBox()
bbox = gtk.HBox()
bbox.pack_start(undo_button)
bbox.pack_start(redo_button)
box.pack_start(bbox, expand=False)
box.pack_start(view)
window.add(box)
window.resize(640, 480)
window.show_all()
gtk.main()
--
http://www.arnau-sanchez.com
Más información sobre la lista de distribución Python-es