为什么我的滑块在python tkinter中消失了?

时间:2019-06-12 21:59:01

标签: python tkinter

我一直在使用三个滑块自定义RGB输出的tkinter项目。下面的代码工作正常:

from tkinter import*


Window = Tk()
Window.title("Edit Color")
Window.geometry('1270x680')
Window.configure(background = "black")

#sliders
Slider_1 = Scale(activebackground='pink',
                 orient=HORIZONTAL,
                 relief=GROOVE,
                 length = 500,
                 from_=0,to_=255,
                 bg='red',
                 tickinterval=51,
                 troughcolor='pink')
Slider_1.grid(row=0, column=0,padx=60, pady=70)


Slider_2 = Scale(activebackground='lightGreen',
                 orient=HORIZONTAL,
                 relief=GROOVE,
                 length = 500,
                 from_=0,to_=255,
                 bg='Green',
                 tickinterval=51,
                 troughcolor='lightGreen')
Slider_2.grid(row=2,  column=0, pady=70)


Slider_3 = Scale(activebackground= 'light blue',
                 orient=HORIZONTAL,relief=GROOVE,
                 length = 500, from_=0, to_=255,
                 bg='blue',
                 tickinterval=51,
                 troughcolor= 'light blue')
Slider_3.grid(row=4, column=0, pady=70)


Window.mainloop()

然后,我添加了两件事,以便能够打印滑块的值。第一个在顶部附近。它是一个与名为“ command”的参数相关联的函数,可以在每个滑条函数的括号末尾找到

from tkinter import*


Window = Tk()
Window.title("Edit Color")
Window.geometry('1270x680')
Window.configure(background = "black")

def print_value(val):
    print val

#sliders
    Slider_1 = Scale(activebackground='pink',
                 orient=HORIZONTAL,
                 relief=GROOVE,
                 length = 500,
                 from_=0,to_=255,
                 bg='red',
                 tickinterval=51,
                 troughcolor='pink',command=print_value)
    Slider_1.grid(row=0, column=0,padx=60, pady=70)


    Slider_2 = Scale(activebackground='lightGreen',
                 orient=HORIZONTAL,
                 relief=GROOVE,
                 length = 500,
                 from_=0,to_=255,
                 bg='Green',
                 tickinterval=51,
                 troughcolor='lightGreen',command=print_value)
    Slider_2.grid(row=2,  column=0, pady=70)


    Slider_3 = Scale(activebackground= 'light blue',
                 orient=HORIZONTAL,relief=GROOVE,
                 length = 500, from_=0, to_=255,
                 bg='blue',
                 tickinterval=51,
                 troughcolor= 'light blue',command=print_value)
    Slider_3.grid(row=4, column=0, pady=70)


Window.mainloop()


当我添加它并执行程序时,屏幕为黑色,并且没有滑块。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

创建滑块的代码位于函数print_value内,而您从不调用print_value