本文整理汇总了Python中ttk.Label.configure方法的典型用法代码示例。如果您正苦于以下问题:Python Label.configure方法的具体用法?Python Label.configure怎么用?Python Label.configure使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ttk.Label
的用法示例。
在下文中一共展示了Label.configure方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: FirstWindow
# 需要导入模块: from ttk import Label [as 别名]
# 或者: from ttk.Label import configure [as 别名]
class FirstWindow(Frame):
def __init__(self, parent, controller, listener):
Frame.__init__(self, parent)
self.parent = parent
self.controller = controller
self.listener = listener
self.controller.add_listener(self.listener)
self.initUI()
def initUI(self):
self.centerWindow()
self.parent.title("Cursor")
self.style = Style()
self.style.theme_use("clam")
self.style.configure("TFrame")
self.pack(fill=BOTH, expand=1)
self.label = Label(self)
self.label.configure(text="Hold your hand above the device for two seconds...")
self.label.place(x=50, y=50)
quitButton = Button(self, text="Quit",
command=self.quit)
quitButton.place(x=50, y=100)
def update_label(self):
self.label.configure(text="You can now use the cursor.")
def remove(self):
self.controller.remove_listener(self.listener)
def centerWindow(self):
w, h = 450, 180
sw = self.parent.winfo_screenwidth()
sh = self.parent.winfo_screenheight()
x = (sw - w)/2
y = (sh - h)/2
self.parent.geometry('%dx%d+%d+%d' % (w, h, x, y))
示例2: StatusFrame
# 需要导入模块: from ttk import Label [as 别名]
# 或者: from ttk.Label import configure [as 别名]
class StatusFrame(Frame):
def __init__(self, parent, passfail, failtext):
Frame.__init__(self, parent)
self.status = StringVar()
self.status_text = StringVar()
self.statuslbl = Label(self, textvariable=self.status, style='Title.TLabel'); self.statuslbl.grid(column=0, row=1, columnspan=2, padx=100, pady=10)
self.bar = Separator(self, orient=HORIZONTAL); self.bar.grid(column=0, row=2, columnspan=2, padx=5, pady=5, sticky='nsew')
self.ok = Button(self, text='OK', command=self.OkBut, width=10); self.ok.grid(column=0, columnspan=2, row=4, padx=5, pady=5)
if passfail == 'PASS':
self.TestPassed()
elif passfail == 'FAIL':
self.TestFailed(failtext)
else:
self.status.set('What?????')
self.grid()
# Center the Window
parent.update_idletasks()
xp = (parent.winfo_screenwidth() / 2) - (self.winfo_width() / 2) - 8
yp = (parent.winfo_screenheight() / 2) - (self.winfo_height() / 2) - 20
parent.geometry('{0}x{1}+{2}+{3}'.format(self.winfo_width(), self.winfo_height(), xp, yp))
parent.mainloop()
def OkBut(self):
self.quit()
def StatusText(self, text ):
self.status_text.set(text)
def TestInProgress(self):
self.status.set('Test In Progress')
self.statuslbl.configure(foreground='black')
def TestPassed(self):
self.status.set('Test PASSED')
self.configure(background='green')
self.statuslbl.configure(background='green',foreground='yellow')
def TestFailed(self, text):
self.status.set('Test FAIL')
self.configure(background='red')
self.statuslbl.configure(background='red',foreground='yellow')
self.text = Text( self, relief=SUNKEN, width=110, height=16); self.text.grid(column=0, row=3, columnspan=2, sticky='nsew', padx=10, pady=10)
self.text.insert(INSERT,text)
示例3: gui
# 需要导入模块: from ttk import Label [as 别名]
# 或者: from ttk.Label import configure [as 别名]
class gui(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
self.centerUI(w=600,h=250)
def initUI(self):
self.parent.title("FIND BLR COEFFICIENT VALUE")
self.pack(fill=BOTH, expand=True)
self.columnconfigure(0, weight=1)
# self.rowconfigure(0, weight=1)
# weight attibute is used to make them growable
###### GUI Control Variables ######
self.LIMIT_L = IntVar()
self.LIMIT_H = IntVar()
self.PULSE_R = IntVar()
self.PULSE_L = IntVar()
self.pulse_height = DoubleVar()
self.hdf5_file = StringVar()
self.PMT = IntVar()
self.EVENT = IntVar()
self.amplitude_range = DoubleVar()
self.delta = DoubleVar()
self.noise_sigma = DoubleVar()
self.coeff = DoubleVar()
#self.DRAW = BooleanVar()
search = Image.open("next_logo.jpg")
search_temp = search.resize((170, 200), Image.ANTIALIAS)
search_aux = ImageTk.PhotoImage(search_temp)
label1 = Label(self, image=search_aux)
label1.image = search_aux
label1.grid(row=0, column=0,
columnspan=10, rowspan=10, sticky=E+W+S+N)
self.hdf5_file.set("2052.h5.z")
e1 = Entry(self, textvariable=self.hdf5_file, width=30)
e1.grid(row=1,column=1, sticky=W, columnspan=5, pady=5)
e1_label = Label(self, text="HDF5 file")
e1_label.grid(row=0,column=1,sticky=W, columnspan=5, pady=5)
self.PMT.set("0")
sb1 = Spinbox(self, from_=0, to=12,
width=3, textvariable=self.PMT)
sb1.grid(row=3,column=2, sticky=W)
sb1_label = Label(self, text="PMT")
sb1_label.grid(row=2,column=2, padx=0, sticky=W)
self.EVENT.set("0")
sb1 = Spinbox(self, from_=0, to=1000,
width=5, textvariable=self.EVENT)
sb1.grid(row=3,column=3, sticky=W)
sb1_label = Label(self, text="EVENT")
sb1_label.grid(row=2,column=3, padx=0, sticky=W)
self.LIMIT_L.set("19000")
sb1 = Spinbox(self, from_=0, to=100000,
width=5, textvariable=self.LIMIT_L)
sb1.grid(row=5,column=2, sticky=W)
sb1_label = Label(self, text="ROI Start ")
sb1_label.grid(row=4,column=2, padx=0, sticky=W)
self.LIMIT_H.set("22500")
sb1 = Spinbox(self, from_=0, to=100000,
width=5, textvariable=self.LIMIT_H)
sb1.grid(row=5,column=3, sticky=W)
sb1_label = Label(self, text="ROI End ")
sb1_label.grid(row=4,column=3, padx=0, sticky=W)
self.PULSE_R.set("20142")
sb1 = Spinbox(self, from_=0, to=100000,
width=8, textvariable=self.PULSE_R)
sb1.grid(row=5,column=4, sticky=E)
sb1_label = Label(self, text=" Pulse Rise")
sb1_label.grid(row=4,column=4, padx=0, sticky=E)
self.PULSE_L.set("1200")
sb1 = Spinbox(self, from_=0, to=5000,
width=8, textvariable=self.PULSE_L)
sb1.grid(row=5,column=5, sticky=E)
sb1_label = Label(self, text=" Pulse Length")
sb1_label.grid(row=4,column=5, padx=0, sticky=E)
sb1_label = Label(self, text=" ")
sb1_label.grid(row=2,column=7, padx=0, sticky=W)
sb1_label = Label(self, text=" ")
#.........这里部分代码省略.........
示例4: Reader
# 需要导入模块: from ttk import Label [as 别名]
# 或者: from ttk.Label import configure [as 别名]
class Reader(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("Graphs")
self.style = Style()
self.style.theme_use("clam")
self.pack(fill=BOTH, expand=1)
self.columnconfigure(1, weight=1)
self.columnconfigure(3, weight=1)
self.columnconfigure(6, pad=7)
self.rowconfigure(3, weight=1)
self.rowconfigure(5, pad=7)
menu = Menu(self.parent)
self.parent.config(menu=menu)
filemenu = Menu(menu)
menu.add_cascade(label="File", menu=filemenu)
filemenu.add_command(label="Load data",command = self.load_data)
# lable to show current file and chanel
self.file_lbl = Label(self, text="")
self.file_lbl.grid(row = 0 , column = 3, pady=4, padx=5)
# list box fro data files
self.file_list = ScrolledList(self,lambda x: self.load_hunt_data(x))
self.file_list.grid(row=1, column=0, columnspan=3, rowspan=4,
padx=5, sticky=E+W+S+N)
# chanel graph viewer
self.graph_viewer = TkinterGraph(self)
self.graph_viewer.grid(row=1, column=3, columnspan=2, rowspan=4,
padx=5, sticky=E+W+S+N)
btn1 = Button(self, text="Left",command = lambda: self.plot_left())
btn1.grid(row=1, column=6)
btn2 = Button(self, text="Right", command = lambda:self.plot_right())
btn2.grid(row=2, column=6, pady=4)
# frames for the classifier for the two chanels
self.frame_left = Frame(self, borderwidth=1)
self.frame_right = Frame(self, borderwidth=1)
self.frame_left.grid(row=5,column=3,columnspan=2, rowspan=1)
btn4 = Button(self, text="SAVE", command = lambda:self.save_graph())
btn4.grid(row=5, column=6)
# note manual addition of labels so that the lable will be to the right of tha radio button
self.classify_left = StringVar()
Label(self.frame_left,text="Left :").pack(side=LEFT)
Label(self.frame_left,text="Type A").pack(side=LEFT)
rb1 = Radiobutton(self.frame_left,variable=self.classify_left,value="TypeA")
rb1.pack(side=LEFT)
Label(self.frame_left,text="Type B").pack(side=LEFT)
rb1 = Radiobutton(self.frame_left,variable=self.classify_left,value="TypeB")
rb1.pack(side=LEFT)
Label(self.frame_left,text="Type C").pack(side=LEFT)
rb1 = Radiobutton(self.frame_left,variable=self.classify_left,value="TypeC")
rb1.pack(side=LEFT)
Label(self.frame_left,text="Type D").pack(side=LEFT)
rb1 = Radiobutton(self.frame_left,variable=self.classify_left,value="TypeD")
rb1.pack(side=LEFT)
self.classify_right = StringVar()
Label(self.frame_right,text="Right :").pack(side=LEFT)
Label(self.frame_right,text="Type A").pack(side=LEFT)
rb1 = Radiobutton(self.frame_right,variable=self.classify_right,value="TypeA")
rb1.pack(side=LEFT)
Label(self.frame_right,text="Type B").pack(side=LEFT)
rb1 = Radiobutton(self.frame_right,variable=self.classify_right,value="TypeB")
rb1.pack(side=LEFT)
Label(self.frame_right,text="Type C").pack(side=LEFT)
rb1 = Radiobutton(self.frame_right,variable=self.classify_right,value="TypeC")
rb1.pack(side=LEFT)
Label(self.frame_right,text="Type D").pack(side=LEFT)
rb1 = Radiobutton(self.frame_right,variable=self.classify_right,value="TypeD")
rb1.pack(side=LEFT)
def load_data(self):
# calls the file dialog box
name = askopenfilename()
(d_path,d_name)=split(name)
# just want to extract the path of the file
self.mypath = d_path
# get 'filtered' files from that path
files = self.get_files()
# display in the list box
self.file_list.load_data(files)
def load_hunt_data(self,selection):
#.........这里部分代码省略.........
示例5: Example
# 需要导入模块: from ttk import Label [as 别名]
# 或者: from ttk.Label import configure [as 别名]
class Example(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.buttons = {}
self.nodes = {}
self.edges = {}
self.active_node = None
self.active_edge = None
self.start = None
self.x = None
self.y = None
self.cycles = None
self.show_cycles_only_mode = False
self.steps = None
self.step_index = None
self.parent.title("Demonstrační aplikace - nalezení elementárních cyklů v orientovaném grafu")
self.style = Style()
self.style.theme_use("default")
self.pack(fill=BOTH, expand=1)
self.columnconfigure(1, weight=1)
self.columnconfigure(3, pad=7)
self.rowconfigure(5, weight=1)
self.rowconfigure(6, pad=7)
self.label = Label(self, text="graf1.graphml")
self.label.grid(sticky=W, pady=4, padx=5)
self.canvas = Canvas(self)
self.canvas.bind('<Double-Button-1>', self.event_add_node)
self.canvas.bind('<Button-1>', self.event_add_edge_start)
self.canvas.bind('<B1-Motion>', self.event_add_edge_move)
self.canvas.bind('<ButtonRelease-1>', self.event_add_edge_end)
self.canvas.bind('<Button-3>', self.event_move_node_start)
self.canvas.bind('<B3-Motion>', self.event_move_node)
self.canvas.pack()
self.canvas.grid(row=1, column=0, columnspan=2, rowspan=6,
padx=5, sticky=E + W + S + N)
self.buttons['start'] = b = Button(self, text="Start", width=15)
b.bind('<Button-1>', self.event_start)
b.grid(row=1, column=3)
self.buttons['next'] = b = Button(self, text=">>", width=15, state=DISABLED)
b.bind('<Button-1>', self.event_next_step)
b.grid(row=2, column=3, pady=4)
self.buttons['prev'] = b = Button(self, text="<<", width=15, state=DISABLED)
b.bind('<Button-1>', self.event_prev_step)
b.grid(row=3, column=3, pady=4)
b = Checkbutton(self, text="Pouze cykly", command=self.event_change_mode)
b.grid(row=4, column=3, pady=4)
self.buttons['reset'] = b = Button(self, text="Reset", width=15)
b.bind('<Button-1>', self.event_reset)
b.grid(row=6, column=3)
menubar = Menu(self.parent)
self.parent.config(menu=menubar)
fileMenu = Menu(menubar)
fileMenu.add_command(label="Načíst", command=self.onLoad)
fileMenu.add_command(label="Uložit", command=self.onSave)
fileMenu.add_separator()
fileMenu.add_command(label="Konec", command=self.onExit)
menubar.add_cascade(label="Soubor", menu=fileMenu)
fileMenu = Menu(menubar)
fileMenu.add_command(label="O aplikaci", command=self.onAbout)
menubar.add_cascade(label="Nápověda", menu=fileMenu)
def onExit(self):
self.quit()
def onLoad(self):
fileTypes = [('Soubory typu GraphML', '*.graphml')]
dialog = tkFileDialog.Open(self, filetypes=fileTypes)
filename = dialog.show()
if filename != '':
self.readFile(filename)
def onSave(self):
fileTypes = [('GraphML files', '*.graphml')]
dialog = tkFileDialog.SaveAs(self, filetypes=fileTypes)
filename = dialog.show()
if filename != '':
if not filename.endswith(".graphml"):
filename += ".graphml"
self.writeFile(filename)
#.........这里部分代码省略.........
示例6: __init__
# 需要导入模块: from ttk import Label [as 别名]
# 或者: from ttk.Label import configure [as 别名]
class File_editor:
def __init__(self,topwin,argv,**kwargs):
global text_font
self.topwin = topwin
self.filefolder = 'log/'
if len(argv) > 1: self.filefolder = argv[1]
self.thread_status = 'Ready:'
set_winicon(self.topwin,'icon_grey')
self.frame3 = Frame(self.topwin, width=700,height=40, relief=SUNKEN)
self.frame3.pack_propagate(0)
self.frame3.pack(side=BOTTOM,pady=10)
self.frame1 = Frame(self.topwin, width=150,height=460, relief=SUNKEN)
self.frame1.pack_propagate(0)
self.frame1.pack(side=LEFT,padx=10,pady=10)
self.frame2 = Frame(self.topwin, width=550,height=460, relief=SUNKEN)
self.frame2.pack_propagate(0)
self.frame2.pack(side=LEFT,padx=10,pady=10)
self.frame4 = Frame(self.frame3, width=450,height=40, relief=SUNKEN)
self.frame4.pack_propagate(0)
self.frame4.pack(side=RIGHT)
self.label1 = Label(self.frame1,text='Files:')
self.label1.pack(side=TOP)
self.Fscroll = Scrollbar(self.frame1)
self.Fscroll.pack(side=RIGHT, fill=Y, expand=NO)
self.listbox = Listbox(self.frame1)
self.listbox.pack(expand=1, fill="both")
self.Fscroll.configure(command=self.listbox.yview)
self.listbox.configure(yscrollcommand=self.Fscroll.set)
self.Tbox = Text(self.frame2, height=12, width=40,wrap=WORD)
self.Tbox.tag_configure('blackcol', font=text_font, foreground='black')
self.Tbox.tag_configure('redcol', font=text_font, foreground='red')
self.Tbox.configure(inactiveselectbackground="#6B9EB7", selectbackground="#4283A4")
self.Tbox.tag_raise("sel")
self.Tscroll = Scrollbar(self.frame2)
self.Tbox.focus_set()
self.Tbox.config(yscrollcommand=self.Tscroll.set)
self.Tscroll.config(command=self.Tbox.yview)
self.Tscroll.pack(side=RIGHT, fill=Y)
self.Tbox.pack(side=BOTTOM,fill=BOTH,expand=1)
self.loadLabel = Label(self.frame3,text='Ready:')
self.loadLabel.pack(side=LEFT,padx=30)
bb1 = Button(self.frame4, text='Change folder', command=self.load_other_folder)
bb1.pack(side=LEFT,padx=30)
bb2 = Button(self.frame4, text='Save', command=self.save_file)
bb2.pack(side=LEFT)
bb3 = Button(self.frame4, text='Close', command=self.close_func)
bb3.pack(side=LEFT,padx=30)
self.reload_file_list()
self.topwin.bind('<Escape>', self.close_func)
self.topwin.bind("<Control-a>", lambda x: widget_sel_all(self.Tbox))
self.Tbox.bind('<Control-f>',lambda x: search_text_dialog(self.Tbox,self.Tscroll))
self.listbox.bind('<Button-1>', lambda x: self.topwin.after(20,self.file_loader))
self.topwin.protocol('WM_DELETE_WINDOW', self.close_func)
self.topwin.after(200,self.after_task)
self.colortag()
def after_task(self):
self.topwin.bind('<Configure>', self.on_resize)
def reload_file_list(self):
try:
self.listbox.delete(0, END)
## file_list = os.listdir(self.filefolder)
file_list = next(os.walk(self.filefolder))[2]
can_insert = True
ignored_files = ['.lnk','.exe','.jpg','.jpeg','.mp3','.ogg','.avi','.mkv','.flv','.iso','.apk','.mp4',
'.wav','.doc','.docx','.zip','.sys']
for x in file_list:
for extension in ignored_files:
if x[-len(extension):] == extension:
can_insert = False
break
if can_insert == True: self.listbox.insert("end", x)
can_insert = True
except Exception as e:
self.Tbox.insert(END, str(e), 'redcol')
self.Tbox.yview(END)
def load_other_folder(self):
self.topwin.lower()
try:
self.topwin.unbind('<Configure>')
self.filefolder = (askdirectory()+'/')
self.reload_file_list()
self.topwin.after(300,self.after_task)
except Exception as e:
self.Tbox.insert(END, str(e), 'redcol')
self.Tbox.yview(END)
self.topwin.lift()
self.colortag()
def save_file(self):
self.topwin.unbind('<Configure>')
if self.thread_status == 'Ready:':
self.thread_status = 'Working:'
#.........这里部分代码省略.........
示例7: EngineGui
# 需要导入模块: from ttk import Label [as 别名]
# 或者: from ttk.Label import configure [as 别名]
class EngineGui():
def __init__(self, communicationProtocal):
self.communicationProtocal = communicationProtocal
def StartGui(self):
self.tkRoot = Tk(baseName="")
self.tkRoot.geometry("350x300+0+0")
self.tkRoot.title("Engine SAPI GUI")
self.GUIVisible = True
frame = Frame(self.tkRoot)
frame.style = Style()
frame.style.theme_use("alt")
frame.pack(fill=BOTH, expand=1)
frame.columnconfigure(1, weight=1)
frame.columnconfigure(7, pad=7)
frame.rowconfigure(13, weight=1)
frame.rowconfigure(13, pad=7)
Label(frame, text="Start:").grid(row = 0, column=0)
self.labelStart = Label(frame, text="0")
self.labelStart.grid(row = 1, column=0)
Label(frame, text="Length:").grid(row = 0, column=1)
self.labelLength = Label(frame, text="0")
self.labelLength.grid(row = 1, column=1)
Label(frame, text="Total:").grid(row = 0, column=2)
self.labelTotal = Label(frame, text="0")
self.labelTotal.grid(row = 1, column=2)
self.labelSentenceLeft = Label(frame, text="...")
self.labelSentenceLeft.grid(row = 2, column=0, sticky=E)
self.labelSentenceSpoken = Label(frame, text="...", foreground="red")
self.labelSentenceSpoken.grid(row = 2, column=1)
self.labelSentenceRight = Label(frame, text="...")
self.labelSentenceRight.grid(row = 2, column=2, sticky=W, columnspan=2)
scrollbar = Scrollbar(frame, orient=VERTICAL)
self.labelQueueToSpeak = Label(frame, text="Queue to speak:").grid(row = 3, column=0, pady=4, padx=5, sticky=W)
self.listboxQueueToSpeak = Listbox(frame, width=50, height=3, yscrollcommand=scrollbar.set)
scrollbar.config(command=self.listboxQueueToSpeak.yview)
self.listboxQueueToSpeak.grid( sticky=N+S+E+W, row = 4, column = 0, columnspan = 2 ,rowspan = 3, padx=3)
scrollbar.grid(sticky=N+S+W, row = 4, column = 2, rowspan = 3)
self.buttonPauze = Button(frame, text="Pauze", command=self.communicationProtocal.handlePauze)
self.buttonPauze.grid(row = 4, column=3)
self.buttonStop = Button(frame, text="Stop", command=self.communicationProtocal.restartProcess)
self.buttonStop.grid(row = 5, column=3)
self.buttonResume = Button(frame, text="Resume", command=self.communicationProtocal.handleResume)
self.buttonResume.grid(row = 6, column=3)
Label(frame, text="Text to say:").grid(row = 7, column=0, padx=3, sticky=W)
self.stringVarTextToSay = StringVar()
self.entryTextToSay = Entry(frame, textvariable=self.stringVarTextToSay, width=500)
self.entryTextToSay.grid(row=8, column=0, columnspan=3, padx=3, sticky=W)
self.stringVarTextToSay.set("Hello SAPI Speak Engine")
self.entryTextToSay.bind('<Return>', self.CallBackReturnSay)
self.buttonSay = Button(frame, text="Say", command=self.CallBackButtonSay)
self.buttonSay.grid(row = 8, column=3)
Label(frame, text="Recover action:").grid(row = 9, column=0, padx=3, sticky=W)
self.recoverActionLabelText = "None"
self.labelRecoverAction = Label(frame, text=self.recoverActionLabelText, foreground="blue")
self.labelRecoverAction.grid(row = 10, column=0)
Label(frame, text="Voice speed:").grid(row = 9, column=1, sticky=W)
self.buttonSpeedDown = Button(frame, text="Speed down", command=self.communicationProtocal.handleSpeedDown)
self.buttonSpeedDown.grid(row = 10, column=1, padx=3, sticky=E)
self.speedValue = 0
self.intVarSpeed = IntVar()
vcmd = (self.tkRoot.register(self.OnValidateEntrySpeakSpeed), '%d', '%i', '%P', '%s', '%S', '%v', '%V', '%W')
self.entrySpeakSpeed = Entry(frame, textvariable=self.intVarSpeed, validate="key", validatecommand=vcmd, width=5)
self.entrySpeakSpeed.grid(row=10,column=2)
self.entrySpeakSpeed.bind('<Return>', self.CallBackSetSpeed)
self.buttonSpeedUp = Button(frame, text="Speed up", command=self.communicationProtocal.handleSpeedUp)
self.buttonSpeedUp.grid(row = 10, column=3)
Label(frame, text="voice:").grid(row = 11, column=0, padx=3, sticky=W)
self.buttonPrevVoice = Button(frame, text="Prev voice", command=self.communicationProtocal.handlePrevVoice)
self.buttonPrevVoice.grid(row = 12, column=0, padx=3, sticky=W)
self.buttonNextVoice = Button(frame, text="Next voice", command=self.communicationProtocal.handleNextVoice)
self.buttonNextVoice.grid(row = 12, column=3)
self.currentVoice = StringVar(self.tkRoot)
self.currentVoice.set(self.communicationProtocal.CurrentVoiceName)
engine = pyttsx.init()
voices = engine.getProperty("voices")
voiceNames = list()
for x in xrange(0, len(voices)):
#.........这里部分代码省略.........