from Tkinter import *


master = Tk()

listbox = Listbox(master)
listbox.pack()
listbox.insert(END, "a list entry")

for item in ["one", "two", "three", "four"]:
    listbox.insert(END, item)

listbox2 = Listbox(master)
listbox2.pack()
listbox2.insert(END, "a list entry")

for item in ["one", "two", "three", "four"]:
    listbox2.insert(END, item)

master.mainloop()

El código anterior crea una tkinter ventana con dos cuadros de lista. Pero hay un problema si usted desea recuperar los valores de ambos porque, tan pronto como se selecciona un valor en uno, se anula la selección de lo que haya seleccionado en el otro.

Es sólo una limitación a los desarrolladores a tener que vivir con?

OriginalEl autor directedition | 2009-04-16

2 Comentarios

  1. 25

    Respuesta corta: establecer el valor de la exportselection atributo de todos los listbox widgets a la falsificación o cero.

    De un resumen pythonware de la listbox widget:

    Por defecto, la selección se exporta
    a la X mecanismo de selección. Si
    tiene más de un listbox en el
    pantalla, esto realmente pierde cosas
    para el pobre usuario. Si se selecciona
    algo, en un cuadro de lista y, a continuación,
    selecciona algo en el otro, la
    selección original se borra. Es
    generalmente es una buena idea desactivar esta
    mecanismo en tales casos. En el
    siguiente ejemplo, tres cuadros de lista están
    se utiliza en el mismo cuadro de diálogo:

    b1 = Listbox(exportselection=0)
    for item in families:
        b1.insert(END, item)
    
    b2 = Listbox(exportselection=0)
    for item in fonts:
        b2.insert(END, item)
    
    b3 = Listbox(exportselection=0)
    for item in styles:
        b3.insert(END, item)

    La documentación definitiva para los conocimientos tradicionales de los widgets se basa en el lenguaje Tcl en lugar de python, pero es fácil de traducir a python. El exportselection atributo puede ser encontrado en el estándar de opciones de la página del manual de.

    OriginalEl autor Jason Coon

  2. 4

    exportselection=0 la hora de definir un listbox parece hacerse cargo de este problema.

    OriginalEl autor directedition

Dejar respuesta

Please enter your comment!
Please enter your name here