PySimpleGUI / PySimpleGUI/PySimpleGUI

[Bug] Nested OneLineProgressMeter causes parent to break or skip

Ouverte
#3,516 6 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
13.8k
Forks
1.8k
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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


Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par le comportement de OneLineProgressMeter décrit dans la reproduction avec des boucles imbriquées et exécutez l’exemple Python fourni après en avoir corrigé les fautes de frappe apparentes. Vérifiez si l’achèvement du meter interne amène la boucle externe à ignorer un élément ou à s’interrompre de manière inattendue ; terminé signifie que les meters imbriqués s’achèvent sans perturber la boucle parente.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
desktop
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.