示例#1
0
class Mi_Ventana(Gtk.Window):
	def __init__(self, *args, **kwargs):
		
		super(Mi_Ventana, self).__init__(*args, **kwargs)
		self.set_size_request(500, 300)
		self.connect('delete-event', Gtk.main_quit)

		self.agregar_contener()
		self.agregar_entrada()
		self.agregar_boton()
		self.agregar_lista()

	def agregar_contenedor(self):
		self.contenedor = Gtk,Grid()
		self.contenedor.set_column_homogeneous(True)
		self.add(self.contenedor)

	def agregar_entrada(self):
		self.entrada = Gtk.Entry()
		self.contenedor.attach(self.entrada, 0, 0, 1, 1)

	def agregar_boton(self):
		self.boton = Gtk.Button('Agregar')
		self.contenedor.attach_next_to(
			self.boton,
			self.entrada,
			Gtk.PositionType.BOTTOM,
			1,
			1
		)

	def agregar_lista(self):
		"""crea un TreeView
		1- crear el modelos de datos(Gtk.ListStore(type, type....., type))
		2- crear un widget que contiene o muestra los datos del modelo
		TreeView(<model>)
		3- definir las columnas y sus contenidos
		3.1- crear celda para cada cplumna de la fila
		los CallRender son widget que srievn para mostrar contenidos dentro de
	    otro widget dependiendo de su tipo
	    3.2- crear columnas (TreeViewColumn) del TreeView que mostraran los datos
	    usando CellRunder como widget como elemntos hijos.
	    args: (Titulo, CellRunder, Posicion en el modelo de la informacion a mostart)
	    3.3- agregar cda TreeViewColumn al TreeView widget"""

	    self.modelo = Gtk.ListStore(str, float)
	    self.lista_arvhivos = Gtk.TreeView(self.modelo)

	    descripcion = Gtk.CellRenderText()
	    columna_descripcion = Gtk.TreeViewColumn('Descripcion', Descripcion, text=0)

	    monto = Gtk.CellRenderText()
	    columna_monto = Gtk.TreeViewColumn('Monto', monto, text=1)

	    self.lista_arvhivos.append_column(columna_descripcion)
	    self.lista_arvhivos,.append_column(columna_monto)

	    self.contenedor.attach_next_to(
	    	self.lista_arvhivos,
	    	self.boton,
	    	Gtk.PositionType.BOTTOM,
	    	1,
	    	1
	    )