PySimpleGUI / PySimpleGUI/PySimpleGUI

[Bug] Nested OneLineProgressMeter causes parent to break or skip

Aberta
#3,516 6 comentários 0 reações 0 responsáveis Ver no GitHub

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

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. 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

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.