Hay muchas cosas que están mal!
1.- Nunca estas definiendo variables globales! (No voy a discutir sobre lo malo que es usar variables globales)
2.- Incluso si los estas definiendo, nunca vas a poder poner valores de esa forma.
3.- Usar variables como usuario1, usuario2, .... usuarioN es dañino en muchos aspectos.
4.- CambiaTexto nunca es llamada y que bueno por que no tiene sentido.
Código Python:
Ver original#!/usr/bin/python
# -*- coding: utf-8 -*-
import sqlite3 as lite
import sys
import wx
#defino variables globales
usuario1 = ""
usuario2 = ""
usuario3 = ""
usuario4 = ""
usuario5 = ""
def LeoUsuarios():
# Necesario para asignar valores
global usuario1
global usuario2
global usuario3
global usuario4
global usuario5
con = lite.connect('usuarios.db')
listausuarios = []
with con:
cur = con.cursor()
cur.execute("SELECT * FROM Usuarios")
while True:
row = cur.fetchone()
if row == None:
break
print "IMPRIMO LOS TRES CAMPOS PARA VERIFICAR QUE FUERON LEIDOS"
print row[0], row[1], row[2]
#agrego a la lista el nombre del usuario
listausuarios.append(row[1])
#print listausuarios
#asigno cada item de la lista a una variable independiente para conservar los valores una vez que salgo del DEF
usuario1 = listausuarios[0]
usuario2 = listausuarios[1]
usuario3 = listausuarios[2]
usuario4 = listausuarios[3]
usuario5 = listausuarios[4]
#imprimo las variables para ver si va todo bien
print usuario1
print usuario2
print usuario3
print usuario4
print usuario5
print "ANTES DE SALIR EL VALOR DE USUARIO 1 ES ", usuario1
#retorno los datos de usuarios leídos
return (usuario1, usuario2, usuario3, usuario4, usuario5)
class RadioButtonFrame(wx.Frame):
def __init__(self):
print "ESTOY DENTRO DE LA SEGUNDA FUNCION Y USUARIO 1 ES"
print usuario1
wx.Frame.__init__(self, None, -1, 'Radio Example',
size=(200, 200))
panel = wx.Panel(self, -1)
radio1 = wx.RadioButton(panel, -1, "1", pos=(20, 50), style=wx.RB_GROUP)
radio2 = wx.RadioButton(panel, -1, "2", pos=(20, 80))
radio3 = wx.RadioButton(panel, -1, "3", pos=(20, 110))
radio4 = wx.RadioButton(panel, -1, "4", pos=(20, 140))
radio5 = wx.RadioButton(panel, -1, "5", pos=(20, 170))
text1 = wx.TextCtrl(panel, -1, usuario1, pos=(80, 50))
text2 = wx.TextCtrl(panel, -1, usuario2, pos=(80, 80))
text3 = wx.TextCtrl(panel, -1, usuario3, pos=(80, 110))
text4 = wx.TextCtrl(panel, -1, usuario4, pos=(80, 140))
text5 = wx.TextCtrl(panel, -1, usuario5, pos=(80, 170))
self.texts = {"1": text1, "2": text2, "3": text3, "4": text4, "5": text5}
for eachText in [text2, text3, text4, text5]:
eachText.Enable(False)
for eachRadio in [radio1, radio2, radio3, radio4, radio5]:
self.Bind(wx.EVT_RADIOBUTTON, self.OnRadio, eachRadio)
self.selectedText = text1
def OnRadio(self, event):
if self.selectedText:
self.selectedText.Enable(False)
radioSelected = event.GetEventObject()
text = self.texts[radioSelected.GetLabel()]
text.Enable(True)
self.selectedText = text
def CambiaTexto(self, event):
EVT_TEXT(id, func)
if __name__ == '__main__':
app = wx.PySimpleApp()
LeoUsuarios()
print "PERO APENAS SALGO EL VALOR DE USUARIO1 ES"
print usuario1
RadioButtonFrame().Show()
app.MainLoop()