在函数的括号之间输出一个值


from tkinter import *
import pygame.mixer
app = Tk()
app.title("Head First Mix")

sound_file = "50459_M_RED_Nephlimizer.wav"
mixer = pygame.mixer
mixer.init()
def track_start():
    track.play(loops = -1)
def track_stop():
    track.stop()
def shutdown():
    track.stop()
    app.destroy()
def track_toogle():
    if track_playing.get() == 1:
        track_start()
    else:
        track_stop()
def change_volume(v):
    track.set_volume(volume.get())

track_playing = IntVar()
track = mixer.Sound(sound_file)
track_button = Checkbutton(app,
                           variable = track_playing,
                           command = track_toogle,
                           text = "50459_M_RED_Nephlimizer.wav")

track_button.pack(side = LEFT)
volume = DoubleVar()
volume.set(track.get_volume())
volume_scale = Scale(app,
                     variable = volume,
                     from_ = 0.0,
                     to = 1.0,
                     resolution = 0.1,
                     command = change_volume,
                     label = "Volume",
                     orient = HORIZONTAL)
volume_scale.pack(side = RIGHT)
app.protocol("WM_DELETE_WINDOW", shutdown)
app.mainloop()

目前,我读了一本名为Head First Python的书。 我理解了一切,直到我读到第9章。 如果我不将某些内容放在change_volume函数括号中,为什么我的应用程序不起作用

为什么我需要"V"- def change_volume(v(:

顺便说一句,让您停止,开始和调整曲目的音量

代码

def change_volume(v):
    track.set_volume(volume.get())

编写为需要参数 v 。但是,正如所写,它从未实际使用该参数。相反,由于您在代码中的其他地方调用了volume = track.get_volume(),除非您在其他地方修改volume(或轨道音量的值(,否则您的代码实际上等效于

def change_volume(v):
    track.set_volume(track.get_volume())

如果要实际更改值,则需要使用参数的值来设置音量:

def change_volume(v):
    track.set_volume(v.get())

相关内容

最新更新