En la linea 76 de tu código de arriba. Estas imprimiendo la lista de resultados. Por eso te manda el dialogo de stdout/stderr.
Ahora, no se como planeas desplegar la información. Te sugiero que uses un ListCtrl y un TextCtrl para hacer una ventana de búsqueda. Algo mas o menos parecido a esto.
Código Python:
Ver originalimport wx
import sqlite3
class MyFrame(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.panel = MyPanel(self)
class MyPanel(wx.Panel):
def __init__(self, *args, **kwargs):
wx.Panel.__init__(self, *args, **kwargs)
self.con = sqlite3.connect("MiBase.sqlite")
self.cur = self.con.cursor()
hbox = wx.BoxSizer(wx.HORIZONTAL)
box = wx.BoxSizer(wx.VERTICAL)
self.list = wx.ListCtrl(self, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER)
self.list.InsertColumn(0, "Codigo")
self.list.InsertColumn(1, "Producto")
self.list.InsertColumn(2, "Costo")
self.text = wx.TextCtrl(self, -1, size=wx.Size(300, -1))
self.button = wx.Button(self, -1, "Buscar")
self.button.Bind(wx.EVT_BUTTON, self.onClick)
hbox.Add(self.text, 0)
hbox.Add(self.button, 0)
box.Add(hbox, 0)
box.Add(self.list, 1, wx.EXPAND)
self.SetSizer(box)
self.Center()
self.text.SetFocus()
def onClick(self, event):
self.cur.execute("SELECT codigo, producto, costo FROM inventario WHERE codigo = ?" , (self.text.GetValue(), ))
recs_list = self.cur.fetchall()
self.list.DeleteAllItems()
for row in recs_list:
pos = self.list.InsertStringItem(0, str(row[0]))
self.list.SetStringItem(pos, 1, str(row[1]))
self.list.SetStringItem(pos, 2, str(row[2]))
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, "ListCtrl")
frame.Show(True)
self.SetTopWindow(frame)
return True
app = MyApp(0)
app.MainLoop()