Python / Tkinter: separadores de cuadro de lista, los elementos desactivados, navegación mediante el teclado?

StackOverflow https://stackoverflow.com/questions/4140396

Pregunta

Estoy estudiando el widget Tkinter cuadro de lista y han sido incapaces de encontrar soluciones para la funcionalidad siguiente:

  1. ¿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).

  2. ¿Cómo puedo desactivar un elemento específico? He intentado utilizar .itemconfig (índice, estado = 'discapacitados') sin éxito.

  3. ¿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?

  4. ¿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

¿Fue útil?

Solución

  1. no se puede. El widget no soporta eso.

  2. 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.

  3. 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.

  4. 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top