Hola, lo que se veia mal ya lo arregle , era que me estaba pasando en
las dimensiones de las label y los otros widgets pero quede con este
probelma ,m y es que en windows wsta venta que copio el codigo se me ve
con el fondo gris oscuro y no me doy cuenta porque
en WIONDOWS XP Y SEVEN se ve con fondo gris oscuro y en linux no . es la
unica ventana de la aplicacion que le pasa eso.
class VentanaMovDescuento(wx.Frame):
def __init__(self,parent):
wx.Frame.__init__(self, parent , -1, 'Ingresar Movimiento',
style=wx.MAXIMIZE_BOX | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX,
pos=wx.Point(200,200),size=wx.Size(410,390))
global mt
mt = 0.00
# Open database connection
db = MySQLdb.connect("localhost","root","local1234HQ25C","cambio")
# Prepara los cursores para usar metodo cursor()
cursor = db.cursor()
cli = 'Select idcliente,apellidos,nombres from clientes order by
apellidos'
ban = 'Select idbanco,nombrebanco from bancos order by nombrebanco'
mon = 'Select idmoneda,simbolomoneda from monedas'
emi = 'Select idemisor,nombreemisor from emisores order by
nombreemisor'
try:
#-----------------------------------
cursor.execute(cli)
global listacli,listaidcli
listacli = []
listaidcli = []
for i in cursor.fetchall():
listaidcli.append(str(i[0]))
listacli.append(i[1]+" "+i[2])
#------------------------------------
cursor.execute(emi)
global listaemi, listaidemisores
listaidemisores = []
listaemi = []
for i in cursor.fetchall():
listaidemisores.append(str(i[0]))
listaemi.append(i[1])
#------------------------------------
cursor.execute(ban)
global listabancos, listaidbancos
listaidbancos = []
listabancos = []
for i in cursor.fetchall():
listabancos.append(i[1])
listaidbancos.append(str(i[0]))
#------------------------------------
cursor.execute(mon)
global listaidmonedas, listamonedas
listaidmonedas = []
listamonedas = []
for i in cursor.fetchall():
listamonedas.append(i[1])
listaidmonedas.append(str(i[0]))
except:
#Rollback in case there is any error
db.rollback()
# disconnect from server
db.close()
# Nro Movimiento
self.etiquetaNroMovimiento =
wx.StaticText(id=-1,label='Movimiento',name='etiquetaNroMovimiento',
parent=self,pos=wx.Point(16, 20),size=wx.Size(80, 30), style=0)
self.TextoNroMovimiento = wx.TextCtrl(id=-1,
name='TextoNroMovimiento',parent=self,pos=wx.Point(110, 14),
size=wx.Size(80, 21))
#Fecha del Movimiento
fecha = datetime.date.today()
hoy = fecha.strftime("%d/%m/%Y")
self.etiquetaFechaMov = wx.StaticText(id=-1,label='Fecha
Mov.',name='etiquetaFechaMov',
parent=self,pos=wx.Point(200,20),size=wx.Size(70, 20), style=0)
self.TextoFechaMov = wx.TextCtrl(id=-1,
name='TextoFechaMov',value = str(hoy),parent=self,pos=wx.Point(280,14),
size=wx.Size(90, 21))
#Cliente con Combo Box
self.etiquetaComboCliente =
wx.StaticText(id=-1,label='Cliente',name='etiquetaComboCliente',
parent=self,pos=wx.Point(16, 40),size=wx.Size(70, 20), style=0)
self.cbcli=wx.ComboBox(self,-1,"Elejir
Cliente",(110,40),choices=listacli)
# Botón de Agregar Clientes.
self.agregacli =
wx.Button(parent=self,id=-1,label="AgregarC",pos=wx.Point(315,36),size=wx.Size(70,26))
#------------------------------------------------------
# Banco con Combo Box
self.etiquetaBanco = wx.StaticText(id=-1,label='Nombre
Banco',name='etiquetaBanco', parent=self,pos=wx.Point(16,
66),size=wx.Size(70, 20), style=0)
self.cbbancos=wx.ComboBox(self,-1,"Elejir
Banco",(110,66),choices=listabancos)
# Botón de AgregarBancos.
self.agregabanco =
wx.Button(parent=self,id=-1,label="AgregarB",pos=wx.Point(315,66),size=wx.Size(70,26))
#-----------------------------------------------------
# Nro Cheque
self.etiquetaNrocheque = wx.StaticText(id=-1,label='Nro de
cheque',name='etiquetaNrocheque', parent=self,pos=wx.Point(16,
93),size=wx.Size(70, 20), style=0)
self.textoNrocheque = wx.TextCtrl(id=-1,
name='textoNrocheque',parent=self,pos=wx.Point(110, 90),
size=wx.Size(110, 21))
# Emisor Con Combo Box
self.etiquetaEmisor =
wx.StaticText(id=-1,label='Emisor',name='etiquetaEmisor',
parent=self,pos=wx.Point(16, 120),size=wx.Size(70, 20), style=0)
self.cbemisores=wx.ComboBox(self,-1,"Elejir
Emisor",(110,118),choices=listaemi)
#Fecha de emision de cheque
self.etiquetaFechaEmision = wx.StaticText(id=-1,label='Fecha
Emision',name='etiquetaFechaEmitido', parent=self,pos=wx.Point(16,
147),size=wx.Size(70, 20), style=0)
self.TextoFechaEmision =
wx.TextCtrl(id=-1,name='TextoFechaEmision',value=str(hoy),parent=self,pos=wx.Point(110,145),size=wx.Size(90,21))
#Fecha de Vencimiento Cheque
self.etiquetaVencimientoCheque =
wx.StaticText(id=-1,label='Vencimiento',name='etiquetaVencimientoCheque', parent=self,pos=wx.Point(205,
150),size=wx.Size(70, 20), style=0)
self.TextoFechaVenCheque =
wx.TextCtrl(id=-1,name='TextoFechaVenCheque',value =
str(hoy),parent=self,pos=wx.Point(290,147),size=wx.Size(90,21))
# Dias de descuento .
self.etiquetaDias= wx.StaticText(id=-1,label='Dias
desc.',name='etiquetaDias', parent=self,pos=wx.Point(205,
180),size=wx.Size(70, 13), style=0)
self.textoDias = wx.TextCtrl(id=-1,
name='textoDias',parent=self,pos=wx.Point(290,180), size=wx.Size(50, 21))
#Moneda con Combo Box
self.etiquetaMonto =
wx.StaticText(id=-1,label='Moneda',name='etiquetaMoneda',
parent=self,pos=wx.Point(205, 212),size=wx.Size(50, 13), style=0)
self.cbmonedas=wx.ComboBox(self,-1,"Elegir
Moneda",(290,210),(90,20),choices=listamonedas)
# Monto.
self.etiquetaMonto =
wx.StaticText(id=-1,label='Monto',name='etiquetaMonto',
parent=self,pos=wx.Point(205, 240),size=wx.Size(54, 13), style=0)
self.textoMonto = wx.TextCtrl(id=-1,
name='textoMonto',parent=self,pos=wx.Point(290, 236), size=wx.Size(100, 21))
# Precio porcentaje inicial
self.etiquetaPorcentajeInicial =
wx.StaticText(id=-1,label='Porc. apl.',name='etiquetaPorcentajeInicial',
parent=self,pos=wx.Point(16,240),size=wx.Size(70,20), style=0)
self.textoPorcentajeInicial = wx.TextCtrl(id=-1,
name='textoPorcentajeInicial',parent=self,pos=wx.Point(90, 236),
size=wx.Size(50, 21))
#Etiqueta Monto a pagar
self.etiqueapagar = wx.StaticText(id=-1,label='Monto a
pagar',name='etiquetaapagar',parent=self,pos=wx.Point(16,285),size=(120,15),
style=0)
self.montoapagar =
wx.StaticText(id=-1,label="",name='etiquetamontoapagar',parent=self,pos=wx.Point(180,285),size=(120,15),style=0)
# Etiqueta Monto Total
self.etiquetamontototal = wx.StaticText(id=-1,label='MONTO
TOTAL',name='etiquetaMontoTotal', parent=self,pos=wx.Point(300,
270),size=wx.Size(120,15), style=0)
self.etiquetamontototal.SetForegroundColour('blue')
self.etiquetaCifraMontoTotal =
wx.StaticText(id=-1,label="",name='etCifraMontoTotal',parent=self,pos=wx.Point(300,285),size=wx.Size(120,15),style=0)
### B O T O N E S ###
# Botón de Calcular Dias
self.calculardias = wx.Button(parent=self,id=-1,label="Calcular
Dias",pos=wx.Point(16,175),size=wx.Size(130,30))
# Botón de Generar Descuentos
self.Confirmar = wx.Button(parent=self,id=-1,label="Confirma
Movimiento",pos=wx.Point(16,320),size=wx.Size(150,30))
self.generadescuento =
wx.Button(parent=self,id=-1,label="Generar
Descuento",pos=wx.Point(170,320),size=wx.Size(130,30))
# Botón de salida de la ventana.
self.salir =
wx.Button(parent=self,id=-1,label="Salir",pos=wx.Point(300,320),size=wx.Size(98,30))
# Creamos los manejadores de eventos, ligando los eventos a
# los métodos que tendrán el código asociado.
self.salir.Bind(wx.EVT_BUTTON, self.OnBotonSalir)
self.calculardias.Bind(wx.EVT_BUTTON, self.ClickCalcularDias)
self.Confirmar.Bind(wx.EVT_BUTTON, self.ConfirmarMovimiento)
self.generadescuento.Bind(wx.EVT_BUTTON,
self.OnClickGeneraDescuento)
self.agregacli.Bind(wx.EVT_BUTTON,self.Btn_agregacli)
self.agregabanco.Bind(wx.EVT_BUTTON,self.Btn_agregabanco)
self.cbcli.Bind(wx.EVT_COMBOBOX,self.evt_combobox_cbcli)
self.cbemisores.Bind(wx.EVT_COMBOBOX,self.evt_combobox_cbemi)
self.cbbancos.Bind(wx.EVT_COMBOBOX,self.evt_combobox_cbban)
self.cbmonedas.Bind(wx.EVT_COMBOBOX,self.evt_combobox_cbmon)
self.Bind(wx.EVT_CLOSE, self.cerrar)
# Definimos los métodos que contienen el código que se ejecutará
# cuando sean llamados a petición de los eventos definidos
anteriormente.
def OnBotonSalir(self, event):
# Cerramos la ventana.
self.Close(True)
def evt_combobox_cbcli(self,evento):
global idc
sel = evento.GetSelection()
val = self.cbcli.GetValue()
idc = listaidcli[sel]
def evt_combobox_cbemi(self,evento):
global idemi
selemi = evento.GetSelection()
valemi = self.cbemisores.GetValue()
idemi = listaidemisores[selemi]
def evt_combobox_cbban(self,evento):
global idban
selban = evento.GetSelection()
valban = self.cbbancos.GetValue()
idban = listaidbancos[selban]
def evt_combobox_cbmon(self,evento):
global idmon
selmon = evento.GetSelection()
valmon = self.cbmonedas.GetValue()
idmon = listaidmonedas[selmon]
def Btn_agregacli(self, event):
AltaCli = VentanaCli(self)
AltaCli.Show()
AltaCli.MakeModal()
def Btn_agregabanco(self,event):
AltaBanco = VentanaIngresaBanco(self)
AltaBanco.Show()
AltaBanco.MakeModal()
def ConfirmarMovimiento(self,event):
bd_idmovimiento = self.TextoNroMovimiento.GetValue()
# Formatear fecha para ingreso a mysql-----------------
fmov = self.TextoFechaMov.GetValue()
dia, mes, ano = (fmov).split('/')
bd_FechaMovimiento = date(int(ano), int(mes), int(dia))
# fin formateo fecha ----------------------------------
if self.cbcli.GetValue() == 'Elejir Cliente':
mensaje = wx.MessageDialog(None,'No selecciono ningun
cliente','ERROR CLIENTES', wx.OK | wx.ICON_ERROR)
mensaje.ShowModal()
mensaje.Destroy()
else:
bd_idcliente = idc
if self.cbbancos.GetValue() == 'Elejir Banco':
mensaje = wx.MessageDialog(None,'No selecciono Banco',
'ERROR BANCOS ' , wx.OK | wx.ICON_ERROR )
mensaje.ShowModal()
mensaje.Destroy()
else:
bd_idbanco = idban
if self.cbemisores.GetValue() == 'Elejir Emisor':
mensaje = wx.MessageDialog(None,'No selecciono emisor',
'ERROR EMISORES ' , wx.OK | wx.ICON_ERROR )
mensaje.ShowModal()
mensaje.Destroy()
else:
bd_idemisor = idemi
if self.cbmonedas.GetValue() == 'Elejir Moneda':
mensaje = wx.MessageDialog(None,'No selecciono Moneda',
'ERROR MONEDAS ' , wx.OK | wx.ICON_ERROR )
mensaje.ShowModal()
mensaje.Destroy()
else:
bd_idmoneda = idmon
# formatear fecha de emision de cheque para insert mysql
femic = self.TextoFechaEmision.GetValue()
diae, mese, anoe = (femic).split('/')
bd_FechaEmisionCheque = date(int(anoe),int(mese),int(diae))
# fin formateo fecha emision cheque -----------------------
# formateo fecha de vencimineto de cheque para insert mysql
fvenc = self.TextoFechaVenCheque.GetValue()
diavc,mesvc,anovc = (fvenc).split('/')
bd_FechaVenCheque = date(int(anovc),int(mesvc),int(diavc))
# fin formateo fecha vencimiento de cheque para mysql
bd_diasdescuento = int(self.textoDias.GetValue())
bd_porcentajedescuento = self.textoPorcentajeInicial.GetValue()
bd_montocheque = self.textoMonto.GetValue()
bd_montoapagar = total_a_pagar
bd_estadomovimiento = "P"
# Open database connection
db =
MySQLdb.connect("localhost","root","miyaguiAdminaya2010","cambio")
# prepare a cursor object using cursor() method
cursor = db.cursor()
# Prepare SQL query to INSERT a record into the database."""
insertarmov = """INSERT INTO movimientos
(idmovimiento,fechamovimiento,idemisorcheque,idcliente,idbanco,idmoneda,fechaemicheque,fechavencheque,diasdescuento,porcentajedescuento,montocheque,montoapagar,estadomovimiento)
VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"""
try:
# Execute the SQL command
cursor.execute(insertarmov,(bd_idmovimiento,bd_FechaMovimiento,bd_idemisor,bd_idcliente,bd_idbanco,bd_idmoneda,bd_FechaEmisionCheque,bd_FechaVenCheque,bd_diasdescuento,bd_porcentajedescuento,bd_montocheque,bd_montoapagar,bd_estadomovimiento,))
# Commit your changes in the database
db.commit()
except MySQLdb.Error, e:
#Rollback in case there is any error
print "An error has been passed. %s" %e
db.rollback()
# disconnect from server
db.close()
def ClickCalcularDias(self,evt):
fm = self.TextoFechaMov.GetValue()
dia, mes, ano = (fm).split('/')
#global FechaMovimiento
FechaMovimiento = date(int(ano), int(mes), int(dia))
print FechaMovimiento
fvc = self.TextoFechaVenCheque.GetValue()
dia, mes, ano = (fvc).split('/')
#global FechaVenCheque
FechaVenCheque = date(int(ano),int(mes),int(dia))
calculardias = FechaVenCheque - FechaMovimiento
diasd = calculardias.days
self.textoDias.Value = str(diasd)
def OnClickGeneraDescuento(self,event):
# Calcular Resultados
global
mt,monto_descuento,nrocheque,nCliente,banco,monto,porcentajeinicial,
monto_mensual, monto_xdia, monto_decuento, dias, total_a_pagar
nrocheque = self.textoNrocheque.GetValue()
banco = self.cbbancos.GetValue()
monto = self.textoMonto.GetValue()
nClliente = self.cbcli.GetValue()
porcentajeinicial = self.textoPorcentajeInicial.GetValue()
dias = self.textoDias.GetValue()
monto = float(monto)
porcentajeinicial = float(porcentajeinicial)
monto_mensual = float(0.00)
monto_mensual = (monto * porcentajeinicial)/100
monto_xdia = float(0.00)
monto_xdia = monto_mensual/30
monto_descuento = 0.0
dias = float(dias)
monto_descuento = monto_xdia * dias
total_a_pagar = 0.0
total_a_pagar = monto - monto_descuento
mt = mt + total_a_pagar
self.montoapagar.SetForegroundColour('red')
self.montoapagar.SetLabel(str(total_a_pagar))
self.etiquetaCifraMontoTotal.SetLabel(str(mt))
self.etiquetaCifraMontoTotal.SetForegroundColour('red')
def cerrar(self, evt):
self.MakeModal(False)
evt.Skip()
El 04/09/13 09:45, Mario Lacunza escribió:
Uhm....sin ver tu código difícil q podamos ayudarte, prepara un demo.
Estas trabajando con sizers? Seguro q estas usando un wxpanel?
Enviado desde mi Samsung Galaxy S4
El 04/09/2013 03:26, "Alfredo Riguetti"
<alfredo.rigue...@ptravel.com.uy
<mailto:alfredo.rigue...@ptravel.com.uy>> escribió:
Hola a todos, hice un abm en python con mysql y wxpython y estoy
programando bajo fedora con eclipse, el sistema probandolo en
linux como hasta ahora me anda impecable y se ve perfecto las
ventanas textctrl botones y demas, ahroa me surgio el problema que
lo tengo que instalar en un windows.
hice lo que me recomendo un compañero de esta lista y me andubo,
es decir instale las mismas versiones con las que trabaje . tanto
mysql., python y wxpython y mysql-python conection.
AHORA, el problema que tengo es que no se ve igual a como lo veia
en linux. se ve mal, algunas ventanas se ven corridas, los botones
no en el lugar exacto, algunos no se ven totalmente , los
textctrol y combobox defasados,y me quiero arrancar los pelos ,
tengo que solucionar esto y no se que es..... alguien puede
tirarme una piola para salir de esto ysaber que es ???
m,uchas gracias
fefo
_______________________________________________
Python-es mailing list
Python-es@python.org <mailto:Python-es@python.org>
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
--
Alfredo Riguetti
Dpto. Informatica
Planet Travel
HRG Uruguay
Rio Negro 1320 piso 1
Montevideo - Uruguay
(598) 2900-1514
planettravel@ptravel,com,uy
www,planettravel,com,uy
Por favor considere su responsabilidad ambiental antes de imprimir este
correo - Please consider your environmental responsability before
printing this e-mail
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/