Pysimplegui: [Aprimoramento / Bug / Pergunta] Meu problema é ...

Criado em 21 jun. 2020  ·  4Comentários  ·  Fonte: PySimpleGUI/PySimpleGUI

Tipo de problema (aprimoramento, erro, bug, pergunta)

Pergunta / Aprimoramento

Sistema operacional

Win10, Raspian

Versão Python

3,7

Porta e versão PySimpleGUI

Porta tkinter, 4.20.0


4.20.0 Lançado em 6 de junho de 2020

Seus níveis de experiência em meses ou anos

1 ano_________ experiência em programação Python
45 anos ______ Experiência geral em programação
yes_________ Já usou outro Python GUI Framework (tkinter, Qt, etc) anteriormente (sim / não está bem)?

Você concluiu estas etapas:

  • [x] Leia as instruções sobre como registrar um problema
  • [x] Pesquisei nos documentos principais http://www.PySimpleGUI.org para seu problema
  • [x] Pesquisei no leia-me sua porta específica, se não PySimpleGUI (Qt, WX, Remi)
  • [x] Procurou programas de demonstração semelhantes ao seu objetivo http://www.PySimpleGUI.com
  • [x] Observe que também existem programas de demonstração em cada porta no GitHub
  • [x] Execute seu programa fora do seu depurador (a partir de uma linha de comando)
  • [x] Pesquisei nos problemas (abertos e fechados) para ver se já foram relatados
  • [] x Tente novamente atualizando seu arquivo PySimpleGUI.py para usar o atual no GitHub. Seu problema pode já ter sido corrigido, mas ainda não está no PyPI.

Descrição do problema / pergunta / detalhes

Meu aplicativo é para uma GUI em framboesa com atualização de elementos em tempo real (janela assíncrona)
UPS2-GUI
. Está funcionando bem, mas alguns recursos adicionais em pysimplegui seriam ótimos:
Pergunta 1 : Forneça uma lista com atributos de elementos de texto que podem ser atualizados pela janela ['xxkey']. Update ().

Question2 : Qual é o propósito de _f_ na janela [f'xxkey '] aparecendo em alguns de seus exemplos

Proposta de aprimoramento : importante para uma atualização dinâmica, por exemplo, 'border_width' em um texto.

exemplos de trabalho:
janela ['K_BATT_STATE']. atualização ('LOW')
janela [f'K_BATT_V ']. update (background_color =' green ')

não funciona exemplo:
janela [f'K_BATT_V ']. update (border_width = 2)

Comentários muito úteis

Como eu sei

  • Opções de atributos de elemento de texto mostrados em Atualizar (valor = Nenhum, background_color = Nenhum, text_color = Nenhum, fonte = Nenhum, visível = Nenhum).
  • O único exemplo de demonstração de uso da janela [f '...] é Demo_Column_Elem_Swap_Entire_Window.py . string f usada para substituição de substring por variável.

Uma amostra para você.

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 comentários

A documentação e as strings de doc embutidas informam exatamente o que está disponível para o método de atualização de cada elemento. Dê uma olhada na referência detalhada da chamada.
http://calls.PySimpleGUI.org
Se algo não estiver lá, você tem algumas opções. Você pode manipular diretamente o widget subjacente ou abrir uma solicitação de melhoria.,

Como eu sei

  • Opções de atributos de elemento de texto mostrados em Atualizar (valor = Nenhum, background_color = Nenhum, text_color = Nenhum, fonte = Nenhum, visível = Nenhum).
  • O único exemplo de demonstração de uso da janela [f '...] é Demo_Column_Elem_Swap_Entire_Window.py . string f usada para substituição de substring por variável.

Uma amostra para você.

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()

Muito obrigado Jason!

Quando um recurso de um "widget" subjacente não é exposto por meio das APIs PySimpleGUI, você pode usar a variável de membro .Widget para acessar diretamente o widget da estrutura GUI subjacente. Você perde a portabilidade de uma estrutura para outra, mas isso geralmente não é um problema nesses casos.

Que bom que você tem uma solução com a qual está bem.

Oi Jason, Oi Mike
Muito obrigado! Ambas as respostas são úteis para acabar com meu sofrimento :-) em poucos minutos.
Pysimplegui é um ótimo produto com um suporte incrível!
Assim que meu projeto estiver utilizável, irei publicá-lo em minha conta git. É uma fonte de alimentação ininterrupta e de alta eficiência para todos os modelos raspberry 3 ++ e pi zero e inclui um design completo de hardware e software.

Esta página foi útil?
0 / 5 - 0 avaliações