2017-12-29 25 views
1

私は "Music Hub"を作って、どこに私のすべての音楽を1つの場所に置いて、曲名にタイプしてから演奏しなければならないのかを知りたいです。私はほとんどそれを達成しましたが、私はtkinterでの私のエントリーに誤りがあります。ここに私のコードは次のとおりです。tkinterとpygameのエントリに問題があります

from tkinter import * 
import time 
import pygame 
import tkinter 

root = Tk() 
f1 = tkinter.Frame(root, height=100, width=100) 
f1.pack() 
root.title("Test") 

e = Entry(f1) 
e.pack() 
e.focus_set() 

s = e.get() 

def song(): 
    pygame.init() 
    pygame.mixer.init() 
    pygame.mixer.music.load(s+".mp3") 
    pygame.mixer.music.play() 
def pause(): 
    pygame.mixer.music.pause() 
def resume(): 
    pygame.mixer.music.unpause() 



b = Button(f1, text="Play Song", command=song) 
b.pack(fill=tkinter.BOTH, expand=1) 

b2 = Button(f1, text="Pause", command=pause) 
b2.pack() 

b3 = Button(f1, text="Resume", command=resume) 
b3.pack() 

root.mainloop() 

私はエラー「pygame.errorを:「.MP3' を開くことができませんでした」そうだそれはエントリーからの入力が通過していないことを意味する必要がありますので、。すべてのおかげで感謝感謝!

+0

'秒= e.get()' 'S'にエントリ電流値を代入する動作。最初は何もありません。 – Nae

答えて

3

私は解決策を見つけました。 e.get()を変数にするのではなく、単にそれをpygame文に入れます。

pygame.mixer.music.load(s+".mp3") 

pygame.mixer.music.load((e.get())+".mp3") 

に変化し、それが

+0

これは、ボタンが押されたときに呼び出されるたびにエントリ値を取得する 'song'メソッドを作るので、これは解決策です。エントリの初期値を取得するのではなく、 – Nae

+0

あなたはそれを受け入れられた答えとしてマークすることができます:) – furas

関連する問題