Head First Programming
A learner's guide to programming
using the Python language
( O'Reilly Media)
David Griffiths (著) Paul Barry (著)
開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python (プログラミング言語)
Head First Programming A learner's guide to programming using the Python language (David Griffiths(著)、Paul Barry(著)、 O'Reilly Media )のChapter 11(Custom Widgets and Classes: With an object in mind)、LONG EXERCISE(p.352)を解いてみる。
LONG EXERCISE(p.352)
コード(BBEdit)
sample342.py
#!/usr/bin/env python2.7
#-*- coding: utf-8 -*-
# python3.xではtkinter, python2.xではTkinter
# python3.xでpygame.mixerモジュールを上手くインストールできてないので2.7を使用
from Tkinter import *
import pygame.mixer
def createGuiApp(app, title, sound_file):
def trackToggle():
if track_playing.get() == 1:
track.play(loops=-1)
else:
track.stop()
def shutdown():
track.stop()
app.destroy()
def changeVolume(a):
track.set_volume(volume.get())
app.title(title)
mixer = pygame.mixer
mixer.init()
track = mixer.Sound(sound_file)
track_playing = IntVar()
track_button = Checkbutton(app,
variable=track_playing,
command=trackToggle,
text=sound_file)
track_button.pack(side=LEFT)
volume = DoubleVar()
volume_scale = Scale(app,
variable = volume,
from_ = 0.0,
to = 1.0,
resolution = 0.1,
command = changeVolume,
label = 'Volume',
orient = HORIZONTAL)
volume_scale.pack(side=RIGHT)
app.protocol('WM_DELETE_WINDOW', shutdown)
app = Tk()
sound_file = '50459_M_RED_Nephlimizer.wav'
createGuiApp(app, 'Head First Mix', sound_file)
app.mainloop()
入出力結果(Terminal)
$ ./sample352.py $
0 コメント:
コメントを投稿