2012-04-06 25 views

Respuesta

21

Respuesta corta: el atributo exportselection de cada cuadro de lista a False

Tkinter tiene sus raíces en el sistema de ventanas X. X tiene un concepto llamado "selección", que es similar al portapapeles del sistema (más exactamente, el portapapeles es la selección "PRIMARIO"). Por defecto, varios de los widgets tkinter exportan su selección para ser la selección PRIMARIA. Una aplicación solo puede tener una selección PRIMARY a la vez, por lo que el resaltado desaparece al hacer clic entre dos listboxes.

Tkinter le da control sobre este comportamiento con la opción de configuración exportselection para el cuadro de lista (y los widgets de texto y de entrada). Establecerlo en False impide la exportación de la selección a la selección X, lo que permite que el widget retenga su selección cuando un widget diferente obtiene el foco.

Por ejemplo:

the_listbox = tk.Listbox(..., exportselection=False) 

Citando del official tk documentation:

exportselection Especifica si o no una selección en el widget también debería ser la selección X. El valor puede tener cualquiera de las formas aceptadas por Tcl_GetBoolean, como verdadero, falso, 0, 1, sí o no. Si se exporta la selección , al seleccionar en el widget, se anula la selección actual X , al seleccionar fuera del widget, se anula cualquier selección de widget y el widget responderá a las solicitudes de recuperación de selección cuando tenga una selección. El valor predeterminado suele ser que los widgets exporten las selecciones .

Cuestiones relacionadas