Pysimplegui: [Mejora / Error / Pregunta] Mi problema es ...

Creado en 21 jun. 2020  ·  4Comentarios  ·  Fuente: PySimpleGUI/PySimpleGUI

Tipo de problemas (mejora, error, error, pregunta)

Pregunta / Mejora

Sistema operativo

Win10, Raspian

Versión de Python

3,7

Versión y puerto de PySimpleGUI

Puerto tkinter, 4.20.0


4.20.0 Lanzado el 6 de junio de 2020

Sus niveles de experiencia en meses o años

1 año_________ experiencia en programación Python
45 años_________ Experiencia en programación en general
sí_________ ¿Ha usado otro marco de interfaz gráfica de usuario de Python (tkinter, Qt, etc.) anteriormente (sí / no está bien)?

Ha completado estos pasos:

  • [x] Lea las instrucciones sobre cómo presentar un problema.
  • [x] Buscó su problema en los documentos principales http://www.PySimpleGUI.org .
  • [x] Buscó en el archivo Léame su puerto específico si no es PySimpleGUI (Qt, WX, Remi)
  • [x] Buscó programas de demostración que sean similares a su objetivo http://www.PySimpleGUI.com
  • [x] Tenga en cuenta que también hay programas de demostración en cada puerto en GitHub
  • [x] Ejecute su programa fuera de su depurador (desde una línea de comando)
  • [x] Buscó a través de problemas (abiertos y cerrados) para ver si ya se informaron
  • [] x Vuelva a intentarlo actualizando su archivo PySimpleGUI.py para usar el actual en GitHub. Es posible que su problema ya se haya solucionado, pero aún no está en PyPI.

Descripción del problema / pregunta / detalles

Mi aplicación es para una GUI en frambuesa con elementos que se actualizan en tiempo real (ventana asíncrona)
UPS2-GUI
. Está funcionando bien, pero algunas características adicionales en pysimplegui serían geniales:
Pregunta 1 : Proporcione una lista con los atributos de los elementos de texto que se pueden actualizar mediante la ventana ['xxkey']. Update ().

Pregunta 2 : ¿Cuál es el propósito de _f_ en la ventana [f'xxkey '] que aparece en algunos de sus ejemplos?

Propuesta de mejora : importante para la actualización dinámica es, por ejemplo, 'border_width' en un texto.

ejemplos de trabajo:
ventana ['K_BATT_STATE']. update ('LOW')
ventana [f'K_BATT_V ']. actualizar (background_color =' green ')

ejemplo que no funciona:
ventana [f'K_BATT_V ']. actualizar (border_width = 2)

Comentario más útil

Como yo sabia

  • Opciones de atributos de elementos de texto que se muestran en Actualizar (valor = Ninguno, background_color = Ninguno, text_color = Ninguno, fuente = Ninguno, visible = Ninguno).
  • El único ejemplo de uso de la ventana de demostración [f '...] es Demo_Column_Elem_Swap_Entire_Window.py . f-string utilizado para el reemplazo de subcadenas por variable.

Una muestra para ti.

import PySimpleGUI as sg

layout = [[sg.Text('Hello World !', font=('Courier New',20), key='TEXT1')],
          [sg.Text('dlroW olleH !', font=('Courier New',20), key='TEXT2')]]
window = sg.Window('Text', layout, finalize=True)
window['TEXT1'].Widget.configure(borderwidth=5, relief='solid')

while True:

    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break

window.close()

Todos 4 comentarios

La documentación y las cadenas de documentos incorporadas le dicen exactamente qué está disponible para el método de actualización de cada elemento. Eche un vistazo a la referencia detallada de la llamada.
http://calls.PySimpleGUI.org
Si no hay algo, tiene un par de opciones. Puede manipular directamente el widget subyacente o abrir una solicitud de mejora.

Como yo sabia

  • Opciones de atributos de elementos de texto que se muestran en Actualizar (valor = Ninguno, background_color = Ninguno, text_color = Ninguno, fuente = Ninguno, visible = Ninguno).
  • El único ejemplo de uso de la ventana de demostración [f '...] es Demo_Column_Elem_Swap_Entire_Window.py . f-string utilizado para el reemplazo de subcadenas por variable.

Una muestra para ti.

import PySimpleGUI as sg

layout = [[sg.Text('Hello World !', font=('Courier New',20), key='TEXT1')],
          [sg.Text('dlroW olleH !', font=('Courier New',20), key='TEXT2')]]
window = sg.Window('Text', layout, finalize=True)
window['TEXT1'].Widget.configure(borderwidth=5, relief='solid')

while True:

    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break

window.close()

¡Muchas gracias Jason!

Cuando una característica de un "widget" subyacente no se expone a través de las API de PySimpleGUI, entonces puede usar la variable miembro .Widget para acceder directamente al widget del marco de la GUI subyacente. Pierde la portabilidad de un marco a otro, pero eso generalmente no es un problema en estos casos.

Me alegro de que tenga una solución con la que esté de acuerdo.

Hola Jason, hola Mike
¡Muchas gracias! Ambas respuestas son útiles para poner fin a mi sufrimiento :-) en cuestión de minutos.
¡Pysimplegui es un gran producto con un soporte increíble!
Tan pronto como mi proyecto sea utilizable, lo publicaré en mi cuenta de git. Es una fuente de alimentación ininterrumpida y de alta eficiencia para todos los modelos raspberry 3 ++ y pi zero e incluye un completo diseño de hardware y software.

¿Fue útil esta página
0 / 5 - 0 calificaciones