2014-11-21 71 views
0

我試圖使用.get()從我的Scale中訪問條目,但是當我移動滑塊時音量不會改變。我也使用pygame調音臺。在tkinter中創建音量滑塊

相關代碼;

def change_vol(): 
    sounds.music.set_volume(vol.get()) 
######################################### 
def play_music(): 
    load_music() 
    sounds.music.play() 
    pass 
########################## 
def load_music(): 
    sounds.music.load("fakeplastic.wav") 


vol = Scale(
    sound_box, 
    from_ = 0, 
    to = 1, 
    orient = HORIZONTAL , 
    resolution = .1, 
) 
vol.grid(row = 3, column = 1) 

如果您希望我發表任何其他摘要,請問,謝謝。

回答

2

看起來你忘了Scalecommand選項分配給change_vol所以該函數每次調整比例時稱爲:

vol = Scale(
    sound_box, 
    from_ = 0, 
    to = 1, 
    orient = HORIZONTAL , 
    resolution = .1, 
    #################### 
    command=change_vol 
    #################### 
) 

您還需要重新定義change_vol接受事件這將每次發送給它的對象,你移動規模:

def change_vol(_=None): 
    sounds.music.set_volume(vol.get()) 

我做_=None讓你不使用內t時的說法明確表示,他的功能。

+0

添加,給出錯誤;異常在Tkinter回調 回溯(最近呼叫最後): 文件「/usr/lib/python3.4/tkinter/__init__.py」,行1490,在__call__中 返回self.func(* args) TypeError:change_vol ()需要0個位置參數,但1個被給出了 – 2014-11-21 00:08:31

+0

@DamhanRichardson - 啊,一個事件對象被髮送到'change_vol'。看我的編輯。 – iCodez 2014-11-21 00:10:17

+0

你是最棒的!無法在網上找到這個地方。 – 2014-11-21 00:12:28