Ejemplo wx.Grid con Base de Datos
Python
Publicado el 21 de Marzo del 2014 por Xavi (548 códigos)
11.189 visualizaciones desde el 21 de Marzo del 2014
Código de ejemplo que muestra el contenido de una base de datos en un wx.grid
#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""
Para este ejemplo, la base de datos solo tiene 2 campos:
CREATE TABLE IF NOT EXISTS `mail` (
`name` varchar(100) DEFAULT NULL,
`mail` varchar(100) NOT NULL DEFAULT '',
PRIMARY KEY (`mail`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Dumping data for table `temporary`
--
INSERT INTO `temporary` (`name`, `mail`) VALUES
('name1', 'user1@domain1.com'),
('name2', 'user2@domain2.com'),
('name3', 'user3@domain3.com'),
('name4', 'user4@domain4.com');
"""
import wx, MySQLdb, wx.lib.intctrl, wx.grid
class MostrarGrid(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, "Ejemplo wx.Grid con Base de Datos", size=(800,650))
# conectamos con la base de datos
db= MySQLdb.connect(host='localhost', user='all' , passwd='all', db='mailsList')
cursor = db.cursor()
# realizamos la consulta sql
cursor.execute("SELECT * FROM mails limit 100")
result=cursor.fetchall()
# Definimos el panel principal
panel = wx.Panel(self, -1)
vbox = wx.BoxSizer(wx.VERTICAL)
# Añadimos el grid
grid = wx.grid.Grid(panel, -1, size=(670,550))
# creamos las filas y columnas
grid.CreateGrid(len(result),2)
# definimos los campos que contiene el grid
grid.SetColLabelValue(0, 'Nombre')
grid.SetColLabelValue(1, 'Correo')
# definimos los tamaños
grid.SetRowLabelSize(50)
grid.SetColSize(0,300)
grid.SetColSize(1,300)
gridTableSizer = wx.BoxSizer(wx.HORIZONTAL)
gridTableSizer.Add(grid, wx.ALIGN_CENTER | wx.ALL,0)
# Añadimos los campos de la base de datos a las columnas
for i in range(0,len(result)):
# añadimos la primera columna
grid.SetCellValue(i,0,"%s" % result[i][0])
# añadimos la segunda columna
grid.SetCellValue(i,1,"%s" % result[i][1])
#Add buttons
BtnSizer = wx.BoxSizer(wx.HORIZONTAL)
closeBtn = wx.Button(panel, -1, 'Cerrar')
closeBtn.Bind(wx.EVT_BUTTON, self.onClose)
BtnSizer.Add(closeBtn, 0, wx.ALL, 5)
vbox.Add(gridTableSizer, 0, wx.ALIGN_CENTER | wx.ALL, 5)
vbox.Add(BtnSizer, 0, wx.ALIGN_CENTER | wx.ALL, 5)
panel.SetSizer(vbox)
self.Show(True)
def onClose(self, event):
self.Close()
app = wx.App()
MostrarGrid(None, -1)
app.MainLoop()
Comentarios sobre la versión: Versión 1 (0)
No hay comentarios