Python / Tkinter: separadores de cuadro de lista, los elementos desactivados, navegación mediante el teclado?
-
30-09-2019 - |
Pregunta
Estoy estudiando el widget Tkinter cuadro de lista y han sido incapaces de encontrar soluciones para la funcionalidad siguiente:
-
¿Cómo puedo crear elementos de separación horizontales no seleccionables, por ejemplo. separadores equivalentes a .add_separator del widget Menú Tkinter ()? (El uso de caracteres como guiones y guiones bajos se ve horrible).
-
¿Cómo puedo desactivar un elemento específico? He intentado utilizar .itemconfig (índice, estado = 'discapacitados') sin éxito.
-
¿Cómo puedo activar la navegación por teclado, por ejemplo. cuando la entrada de teclado de un usuario se desplaza automáticamente hacia adelante un elemento más cercano a la que comienza con el texto que el usuario escribió? ¿Debo bind ( '
, ...) y gestionar este comportamiento a mí mismo? -
¿Podría algo de la funcionalidad por encima de ser más fácil de implementar el uso de un widget de texto o el widget de TTK Treeview?
Gracias, Malcolm
Solución
-
no se puede. El widget no soporta eso.
-
No se puede desactivar ciertos elementos, el widget no es compatible con un atributo de estado. Una vez dicho esto, puede supervisar la selección y hacer lo que es apropiado si el usuario selecciona algo que está desactivado, y utilizar el primer plano elemento para denotar discapacitados-dad.
-
tendrá que unen a los eventos de pulsación de teclas y manejar el comportamiento mismo. No es particularmente difícil, sólo un poco tedioso.
-
El texto del widget podría ser la mejor opción, aunque tendrá que añadir fijaciones para imitar los enlaces predeterminados del cuadro de lista.
En pocas palabras: Tkinter ofrece nada que apoya directamente lo que quiere hacer, pero los bloques de construcción son todo lo que hay. Usted sólo tiene que construir por sí mismo.