Crea una lista de PySimpleGUI con una clave
Deseo tener una lista de elementos de texto en un PySimpleGUI que pueda actualizar más tarde. Es decir, quiero tener una clave para la lista. Esto puede ser vertical u horizontal, y no sé cuántos elementos habrá.
Acabo teniendo diferentes casos de uso, pero el actual es hacer una sola línea de elementos de texto con diferentes colores. Otras veces, necesito escribir y actualizar una tabla personalizada, lo suficientemente diferente como para que el widget de tabla no funcione.
Conceptualmente, quiero hacer algo como esto:
layout = [ [sg.T(‘Títulos y cosas’)], sg.ListThing(key=’-data-‘, [[]]) ]
para que pueda:
window[‘-data-‘].update(values=[ [sg.T(v, color=c)] for (v,c) in my_data ])
Otra forma, de sintaxis incorrecta, de decir lo que quiero es usar [key=”-data-“, sg.T(‘Item1’), sg.T(‘Item2’)].
¿Es esto posible?
davy.ai
Sí, es posible tener una lista de elementos de texto en PySimpleGUI que se pueden actualizar más tarde usando una clave para la lista. Una forma de lograr esto es utilizando el elemento sg.Listbox con la opción “values”. Puedes definir una lista de valores predeterminados y luego actualizarla según sea necesario utilizando el método “update” del objeto de la ventana.
Aquí tienes un ejemplo de cómo podría verse el código:
En este ejemplo, primero definimos el diseño con un elemento sg.Listbox que tiene una lista vacía de valores y una clave establecida en ‘-data-‘. Luego creamos la ventana y definimos algunos datos predeterminados que queremos mostrar en el listbox. Finalmente, actualizamos los valores del listbox pasando una comprensión de lista que crea un elemento sg.T para cada ítem en nuestra lista de datos, con el texto y el color de texto apropiados.
Ten en cuenta que también se pueden utilizar diseños alternativos con sg.Table para mostrar y actualizar tablas personalizadas.