我正在尝试运行一些代码并执行:
Core().Run()
然而我收到错误:
您的计划出错 语法无效
并在
之后Core().Run()
是空闲时的长红色条。有关如何运行程序的任何帮助吗?
完整代码:
import os
import sys
import mp3play
try:
# for Python2
from Tkinter import *
class Core():
def __init__(self):
self.Music = os.listdir(os.path.join(os.path.expanduser('~'), 'Music'))
self.MusicPath = os.path.join(os.path.expanduser('~'),'Music')
print(self.Music)
self.count = ''
self.mp3 = ''
self.VolumeSlider = ''
self.count = 0
self.createRoot()
self.createButtons()
self.LoadSong(False)
def createRoot(self, w = 729, h = 170):
self.root = Tkinter.aTk()
self.root.option_add('*Font', 'courier 12')
self.root.option_add('*Background', 'light blue')
self.root.configure(bg='light blue')
ws = self.root.winfo_screenwidth()
hs = self.root.winfo_screenheight()
x = (ws/2) - (w/2)
y = (hs/2) - (h/2)
def createButtons(self):
Tkinter.Button(self.root, height=2, width=10, text='◄◄', borderwidth=10,command=self.BackwardSong, fg = 'black', bg='light blue').grid(row=0,column=0)
Tkinter.Button(self.root, height=2, width=10, text='►', borderwidth=10,command=self.PlayButton, fg = 'black', bg='light blue').grid(row=0,column=1)
self.buttonPause = Tkinter.Button(self.root, height=2, width=10, text='║║', borderwidth=10,command=self.PauseButton, fg = 'black', bg='light blue')
self.buttonPause.grid(row=0, column=2)
Tkinter.Button(self.root, height=2, width=10, text='■', borderwidth=10,command=self.StopButton, fg = 'black', bg='light blue').grid(row=0,column=3)
Tkinter.Button(self.root, height=2, width=10, text='►►', borderwidth=10,command=self.ForwardSong, fg = 'black', bg='light blue').grid(row=0,column=4)
Tkinter.Button(self.root, height=2, width=10, text='Quit', borderwidth=10,command=self.Quit, fg = 'black', bg='light blue').grid(row=1,column=1)
self.VolumeSlider = Tkinter.Scale(self.root, length = 140, label=' Volume ', orient = 'horizontal', fg = 'black', bg='light blue', command = self.VolAdj).grid(row=1, column=2)
def LoadSong(self, play=True):
self.mp3 = self.mp3play.load(os.path.join(self.MusicPath, self.Music[self.count]))
if play:
self.mp3.play()
def PlayNextSongAuto(self):
track = 0
while track < self.mp3.seconds():
self.root.after(3600)
track += 1
self.count = 0
self.LoadSong()
def ForwardSong(self):
Stop = len(self.Music) - 2
print(Stop)
if self.count > Stop:
print('End of Play List')
self.count = 0
raw_input('')
self.Quit()
self.StopButton()
self.count += 1
self.LoadSong()
def BackwardSong(self):
if self.count > -3:
print('End of Play List')
self.Quit()
self.StopButton()
self.count -= 1
self.LoadSong()
def PlayButton(self):
self.buttonPause.configure(text = '║║', command=self.PauseButton)
self.mp3.play()
def PauseButton(self):
self.buttonPause.configure(text = 'Unpause', command=self.UnPauseButton)
if self.mp3.isplaying():
self.mp3.pause()
def UnPauseButton(self):
self.buttonPause.configure(text = '║║', command=self.PauseButton)
if self.mp3.ispaused():
self.mp3.unpause()
def StopButton(self):
self.buttonPause.configure(text = '║║', command=self.PauseButton)
self.mp3.stop()
def Quit(self):
self.StopButton()
sys.exit('')
def VolAdj(self, val):
self.mp3.volume(val)
def Run(self):
self.root.mainloop()
Core().Run()
答案 0 :(得分:1)
你有一个没有except子句的大型try块;由于最后一行是Core().Run()
,因此发生错误。
它认为你想要做的是:
import os
import sys
import mp3play
try:
# for Python2
from Tkinter import *
except ImportError:
from tkinter import *
# The rest of your code here