Python - Capturar item de un combobox

 
Vista:
sin imagen de perfil

Capturar item de un combobox

Publicado por fais (12 intervenciones) el 10/03/2013 11:18:05
Hola amigos, estoy haciendo una pequeña aplicacion para reconocer el tipo de cartucho que necesita cada inpresora, el unico problema que tengo que no se como decirle al command del comobobox que coja el item que tengo seleccionado, por ahora lo tengo con un boton, pero preferiria que sea onclick, os muestro lo que tengo de codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# -*- coding: utf-8 -*-  
from Tkinter import *
from ttk import *
import MySQLdb
 
 
conn = MySQLdb.connect (host = "127.0.0.1", user = "root",passwd = "root", db = "cartuchos_impresora")
cursor = conn.cursor()
# execute SQL select statement,la query es 
cursor.execute("SELECT nombre_marca FROM marca")
result=cursor.fetchall()
 
root = Tk()
 
def lista():
 
    cursor = conn.cursor()
    Lb1 = Listbox(root, width=50, height=50)
    cursor.execute("SELECT nombre_impresora FROM impresora where id_marca=5")
    result=cursor.fetchall()
    for rx in result:
        Lb1.insert(END,rx)
    Lb1.pack()
    Lb1.grid(row=3,column=0)
    cursor.close()
 
def combo(root):
    value = StringVar()
    root.title('titulo de mi ventana')
    label1=Label(root,text="Seleccione marca de la impresora")
    label1.grid(row=0,column=0)
 
    #Aki esta mi problema, nose como mandarselo a la def lista()
    box = Combobox(root, textvariable=value, state='readonly')
    boton1 = Button(root,text="Buscar",command= lista(box.))
    boton1.grid(row=1,column=1)
    for rx in result:
        box["value"] = result
 
    cursor.close()
    box.grid(column=0, row=1)
 
combo(root)
root.mainloop()


Habe si alguien puede ofrecerme un manual que no encontre o una explicacion de codigo, graciasss
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Capturar item de un combobox

Publicado por xve (1646 intervenciones) el 10/03/2013 19:06:22
Hola Tais, no me queda claro tu problema...

Tienes problemas para coger el valor del combobox? o quieres coger la información del combobox una vez seleccionado sin pulsar el botón buscar?

P.D. Tienes un error en el código en esta linea:
boton1 = Button(root,text="Buscar",command= lista(box.))

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Capturar item de un combobox

Publicado por fais (12 intervenciones) el 11/03/2013 16:28:09
Hola, gracias por tu respuesta, el boton estaba ahi por que pense que me seria mas facil con el boton, pero realmente lo prefiero sin el boton y me ahorro un click, la linea que me comentas es que no supe como completarla, pense que abria que mandar algo a la funcion lista(), pero no supe el que, por que cuando pulso el boton si que me muestra una lista pero simepre la misma por ahora, no consegui afinarlo para que me filtre segun la opcion del combobox

un saludo xve
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Capturar item de un combobox

Publicado por fais (12 intervenciones) el 20/03/2013 09:23:01
alguien mas puede ayudarme por favor, gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Capturar item de un combobox

Publicado por xve (1646 intervenciones) el 21/03/2013 08:15:21
Hola Fais, aqui lo tienes...
He modificado un poco el código para poder hacer el ejemplo, ya que no dispongo de tu base de datos.

Te faltaba el evento <<ComboboxSelected>>..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
from Tkinter import *
from ttk import *
 
root = Tk()
Lb1 = Listbox(root, width=50, height=50)
 
def lista(event):
    print ".............."
    result=["list1","list2"]
    for rx in result:
        Lb1.insert(END,rx)
    Lb1.pack()
    Lb1.grid(row=3,column=0)
 
def combo(root):
 
    value = StringVar()
    root.title('titulo de mi ventana')
    label1=Label(root,text="Seleccione marca de la impresora")
    label1.grid(row=0,column=0)
 
    #Aki esta mi problema, nose como mandarselo a la def lista()
    box = Combobox(root, textvariable=value, state='readonly')
 
    box["value"] = ["opcion1","opcion2"]
 
    # aqui generamos el evento cada vez que se selecciona un elemento del combobox
    box.bind("<<ComboboxSelected>>",lista)
 
    box.grid(column=0, row=1)
 
combo(root)
root.mainloop()


Coméntanos, si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Capturar item de un combobox

Publicado por fais (12 intervenciones) el 21/03/2013 09:57:51
Muchas gracias por esta linea magica jajajajaj
box.bind("<<ComboboxSelected>>",lista)

ahora va mucho mejor,me ahorre el boton, pero no consigo que a lista() me llege datos o no se como tratarlos, este es el principio de la funcion,

1
2
3
4
def lista(value):
 
    print value
    print ".............."


cuando me muestra en la consola el valor de event me muestra esto <Tkinter.Event instance at 0x02C52CD8>, imagino que es un espacio de memoria donde se guarda la variable, pero no consigo que se convierta en un dato util(me da lo mimso el id, que el nombre) para el where de mi query de sql,

y si no te importa me puedes explicar esta linea??
1
box["value"] = ["opcion1","opcion2"]


sustitute a mi bucle for?
1
2
for rx in result:
        box["value"] = result


muchas gracias por tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Capturar item de un combobox

Publicado por fais (12 intervenciones) el 22/03/2013 11:19:33
ya lo consegui, con esta linea:

1
algo = event.widget.get()




muchas gracias por tu ayudaaaaaa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Capturar item de un combobox

Publicado por xve (1646 intervenciones) el 22/03/2013 16:13:28
Hola Fais, muchas gracias por comentarlo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar