PySimpleGUI / PySimpleGUI/PySimpleGUI
[Bug] Nested OneLineProgressMeter causes parent to break or skip
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- Python
- Estrelas
- 13.8k
- Forks
- 1.8k
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
Type of Issues (Enhancement, Error, Bug, Question)
Operating System
Any
Python version
3.7
PySimpleGUI Port and Version
PySimpleGUI Version:
4.30.0
tkinter version:
8.6
Your Experience Levels In Months or Years
3y___ Python programming experience
20y___ Programming experience overall
no_ Have used another Python GUI Framework (tkinter, Qt, etc) previously (yes/no is fine)?
Description of Problem / Question / Details
OneLineProgressMeter causes break upon completion of progress meter when used per the recommended method:
if not OneLineProgressMeter(values):
break
I found this maybe happening only when using multiple meters and nested loops. If you run the code below what you will find is that when the second progress meter finishes it seems to trigger the break (or something else?) which causes the first array to skip an item or end processing.
Code To Duplicate
I am going to approximate my code below:
import PySimpleGUI as sg
array1 = [1,2,3,4]
x = 0
for item in array1:
x = x + 1
if not sg.OneLineProgressMeter('123', x+1, len(array1), 1):
break
array2 = [A,B,C,D]
for itemb in array2:
y = y + 1
if not sg.OneLineProgressMeter('123',yt+1, len(array2), 2):
break
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece pelo comportamento de OneLineProgressMeter descrito na reprodução com loops aninhados e execute o exemplo de Python fornecido depois de corrigir seus aparentes erros de digitação. Verifique se a conclusão do meter interno faz com que o loop externo pule um item ou seja interrompido inesperadamente; concluído significa que os meters aninhados são concluídos sem interromper o loop pai.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- python
- Domínio
- desktop
- Tipo de issue
- Bug
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 35/100