Вызов масштаба tkinter несколько раз во внешнем цикле - PullRequest
0 голосов
/ 31 октября 2019

редактирование на основе комментария: я пытаюсь вызывать шкалу tkinter каждый раз, когда в дополнительном скрипте происходит определенное событие. но масштаб вызывается только в первом событии, а не в любом из следующих событий.

шкала весов - это функция шкалы tkinter, которую я использую.

import tkinter

def quit():
    global tkTop
    tkTop.destroy()

def savepick(event):
    global colornumber
    colornumber = tkScale.get()
    print (colornumber)
    return (colornumber)

def doscale(tkScale):
    savepick(tkScale)
    quit()
    return (colornumber)



tkTop = tkinter.Tk()
tkTop.title("scale")
tkTop.geometry('250x100')
tkTop.focus_force()


tkButtonQuit = tkinter.Button(tkTop, text="Enter", command=quit)
tkButtonQuit.pack()

tkScale = tkinter.Scale(tkTop, label='How many color changes did you see?',resolution=1, length = 240, from_=0, to=5, orient=tkinter.HORIZONTAL)
tkScale.pack(anchor=tkinter.CENTER)

tkTop.bind("<Left>", lambda e: tkScale.set(tkScale.get()-1))
tkTop.bind("<Right>", lambda e: tkScale.set(tkScale.get()+1))
tkTop.bind("<Up>", doscale)

#tkTop.lift()
#tkTop.attributes('-topmost',True)
#tkTop.attributes('-topmost',False)

tkinter.mainloop()

Шкала вызывается в основном цикле while (while run :), из которого я публикую только соответствующий раздел.

    num_of_colorc = "NA"
    if trial_type_list[0] == "B":
        #surface.fill((0, 0, 0))
        # color counting GUI
        colorgui = __import__("scalebar")
        #logging the value selected 
        num_of_colorc = colorgui.colornumber

Я хочу, чтобы масштабирование вызывалось каждый раз, если trial_type_list [0] == "B".

...