1

私は、pygame の特定の機能を追跡するプログレス バーに取り組んでいます。

次のコードは、強制終了する必要があるループを引き起こします。そして、私は自分のエラーを理解できません。どんな助けでも素晴らしいでしょう。

from Tkinter import *
import ttk
import sys
import pygame

myGui = Tk()

myGui.title("Progress Bar")
myGui.geometry("400x200+200+300")

value_progress = StringVar()

pygame.mixer.init()
pygame.mixer.music.load("/home/david/Documents/aaa.mp3")
pygame.mixer.music.play()


def position():
    global value_progress
    while pygame.mixer.music.get_busy() == True: 
        value_progress.set(float(pygame.mixer.music.get_pos()))


b = Button(myGui, text="Start", )
b.pack()


p = ttk.Progressbar(myGui, variable=value_progress,
                    mode='determinate', length=350,
                    maximum= 512920)
p.pack()

シェルから関数を呼び出します。そして失速して出てこない。

これは、私の作業のプログレス バー部分にすぎません。ただし、毎回プログラムがクラッシュします。

4

1 に答える 1

2

ループしないでください。代わりに、次のコードを試してください。

def position():
    global value_progress
    if pygame.mixer.music.get_busy():
        value_progress.set(float(pygame.mixer.music.get_pos()))
        myGui.after(100, position)

Tk.after(ms, f)指定されたミリ秒f後に呼び出します。ms

于 2013-07-27T05:12:28.370 に答える