Python tkinter меняет цвет фона кнопкой - PullRequest
0 голосов
/ 19 июня 2020
• 1000

Я использовал точно такой же код, чтобы изменить цвет моего брюшка sh "create_oval(color, outline), и он пока работал, похоже, не влияет на цвет bg, какие-либо предложения?

import tkinter
background = "white"
okno = tkinter.Tk()
okno.title("Project")
platno = tkinter.Canvas(okno, height = 300, width = 300, bg = background)
platno.pack()

 def background_color():
    background = vstup2.get()
    vstup2.set(background)

tkinter.Label(okno,text = "Background color :", bg = "white", width = 30).pack()
vstup2 = tkinter.StringVar()
tkinter.Entry(okno,textvariable = vstup2, ).pack()
tkinter.Button(okno,width=30, text="Set the color of a background", command=background_color).pack()

1 Ответ

2 голосов
/ 19 июня 2020

Я исправил ваш код с помощью функции .config(). В функции изменения фона вы не пытаетесь изменить фон. Вы меняете только StringVar(), что в любом случае не меняет фон.

Я также сделал ваш gui лучше, вот так:

import tkinter
background = "white"
okno = tkinter.Tk()
okno.title("Project")
okno.config(bg = "white")
platno = tkinter.Canvas(okno, height = 300, width = 300, bg = background, highlightthickness = 0)
platno.pack()
def background_color():
    background = vstup2.get()
    try:
        platno.config(bg = background)
    except:
        pass

tkinter.Label(okno,text = "Background color :", bg = "white", width = 30).pack()
vstup2 = tkinter.StringVar()
tkinter.Entry(okno,textvariable = vstup2, bg = "white").pack()
tkinter.Button(okno,width=30, text="Set the color of a background", command=background_color, relief = "flat", activebackground = "white", bd = 0, bg = "white").pack()

okno.mainloop()

Вывод: enter image description here

Вы также должны добавить а .mainloop() в конце. В некоторых текстовых редакторах, если вы этого не добавите, программа не будет работать должным образом.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...