FileSelection
Python
Publicado el 10 de Noviembre del 2008 por Xavi (548 códigos)
6.695 visualizaciones desde el 10 de Noviembre del 2008
Ejemplo de utilización de un selector de ficheros (FileSelection) con Python 2.5 y GTK 2.
#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
#
# pygtk
#
# Ejemplo de utilizacion de un selector de fichero (FileSelection)
#
# http://www.lawebdelprogramador.com
#
import pygtk
# Indicamos que deseamos utilizar la versión 2.0 de gtk
pygtk.require('2.0')
import gtk
import os
class X(object):
def __init__(self):
# Creamos la ventana. Indicamos que se desea una ventana sometida a las
# decoraciones y posicionamiento del manejador de ventanas.
self.window=gtk.Window(gtk.WINDOW_TOPLEVEL)
# Conector para cuando se va a cerrar la ventana
self.window.connect("destroy", self.destroy, None)
# Establece el grosor del borde de la ventana.
self.window.set_border_width(10)
# Creamos una caja vertical...
vbox=gtk.VBox(True)
# Añadimos una etiqueta para mostrar la url del fichero seleccionado
self.labelUrl=gtk.Label()
# Indicamos la anchura y altura minima
self.labelUrl.set_size_request(400,-1)
self.labelUrl.show()
vbox.pack_start(self.labelUrl)
# Añadimos una etiqueta para mostrar el nombre del fichero seleccionado
self.labelFile=gtk.Label()
# Indicamos la anchura y altura minima
self.labelFile.set_size_request(400,-1)
self.labelFile.show()
vbox.pack_start(self.labelFile)
# Añadimos un boton para seleccionar un fichero
button=gtk.Button("Selecciona un fichero")
button.connect("clicked",self.selectFile, None)
button.show()
vbox.pack_start(button)
vbox.show()
self.window.add(vbox)
self.window.show()
def selectFile(self,widget,data=None):
self.file=gtk.FileSelection("Selecciona un fichero")
self.file.ok_button.connect("clicked",self.button_ok)
# Podemos acceder a cualquiera de los controles contenidos en su interior
# haciendo referencia a:
# self.file.dir_list (gtk.TreeView) Lista de directorios
# self.file.file_list (gtk.TreeView) lista de ficheros
# self.file.selection_entry (gtk.Entry) Entrada de seleccion
# self.file.selection_text (gtk.Label) Texto de seleccion
# self.file.main_vbox (gtk.VBox) Caja vertical principal
# self.file.ok_button (gtk.Button) Boton ok
# self.file.cancel_button (gtk.Button) Boton cancelar
# self.file.help_button (gtk.Button) Boton ayuda
# self.file.history_pulldown (gtk.OptionMenu) Desplegable con el historial de directorios
# self.file.history_menu (gtk.Menu) Menu de historia. Parte de "history_pulldown"
# self.file.fileop_dialog (gtk.Dialog) Caja de dialog usada para mostrar el gtk.FileSelection
# self.file.fileop_entry (gtk.Entry) Entrada de texto
# self.file.fileop_file Nombre del fichero
# self.file.fileop_c_dir (gtk.Button) Boton para crear nueva carpeta
self.file.fileop_c_dir.hide()
# self.file.fileop_del_file (gtk.Button) Boton para borrar un fichero
self.file.fileop_del_file.hide()
# self.file.fileop_ren_file (gtk.Button) Buton para renombrar un fichero
# self.file.button_area (gtk.ButtonBox) Area para los botones fileop_c_dir, fileop_del_file y fileop_ren_file
# self.file.action_area (gtk.HBox) Area de accion
# Cuando pulsemos el boton "Cancelar", destruimos la ventana.
self.file.cancel_button.connect("clicked",lambda w:self.file.destroy())
# Indicamos que nos muestra la ruta del usuario
self.file.set_filename("~/")
self.file.show()
# Cuando se pulsa el boton ok...
def button_ok(self,widget,data=None):
# Mostramos la url y el nombre del fichero
self.labelUrl.set_label(os.path.split(self.file.get_filename())[0])
self.labelFile.set_label(os.path.split(self.file.get_filename())[1])
# Cerramos la ventana
self.file.destroy()
def destroy(self,widget,data=None):
gtk.main_quit()
if __name__=="__main__":
X()
gtk.main()
Comentarios sobre la versión: Versión 1 (2)
voy a tomar como base tu trabajo para tarea que debo hacer.
gracias
Esto sevirá bastante para darle aspecto agradable a mi programa....