dragov 发表于 2024-9-22 10:21:07

Tkinter background

from tkinter import *
root=Tk()
root.title("Tkinter : background")
def gyl(a,b,c):
          def abc():
                  if a== "mediumseagreen":
                              m.config(background=a)
                  elif a=="mediumvioletred" :
                              n.config(background=b)
                  else:
                              o.config(background=c)
          m=Button(root,text="兰州",command=abc).pack()
          n=Button(root,text="广州",command=abc).pack()
          o=Button(root,text="杭州",command=abc).pack()
gyl("mediumturquoise","mediumvioletred","mediumspringgreen")
mainloop()

FishC 发表于 2024-9-22 10:21:20

你好!看起来你想创建一个带有按钮的Tkinter窗口,并根据按钮的点击改变背景颜色。我注意到代码中有一些问题,以下是修改后的代码:

from tkinter import *

root = Tk()
root.title("Tkinter: background")

def gyl(a, b, c):
    def abc():
      if a == "mediumturquoise":
            m.config(bg=a)
      elif a == "mediumvioletred":
            n.config(bg=b)
      else:
            o.config(bg=c)
   
    m = Button(root, text="兰州", command=abc)
    m.pack()
   
    n = Button(root, text="广州", command=abc)
    n.pack()
   
    o = Button(root, text="杭州", command=abc)
    o.pack()

gyl("mediumturquoise", "mediumvioletred", "mediumspringgreen")
root.mainloop()

优化内容简要说明:
1. 根窗口定义移动至函数之外,以便更清晰地结构化代码。
2. 使用 `config(bg=...)` 修改背景颜色。
3. 在创建按钮时拆分了 `.pack()` 调用,确保每个按钮为独立对象,以便在 `abc` 函数中正确引用。

希望这对你有帮助!有什么问题可以继续提问哦!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 2024-9-22 12:28:29

一定记得单独写组件定义
from tkinter import *

root = Tk()
root.title("Tkinter: background")

def gyl(a, b, c):
    def abc():
      if a == "mediumturquoise":
            m.config(bg=a)
      elif a == "mediumvioletred":
            n.config(bg=b)
      else:
            o.config(bg=c)
   
    m = Button(root, text="兰州", command=abc)
    m.pack()
   
    n = Button(root, text="广州", command=abc)
    n.pack()
   
    o = Button(root, text="杭州", command=abc)
    o.pack()

gyl("mediumturquoise", "mediumvioletred", "mediumspringgreen")
root.mainloop()
页: [1]
查看完整版本: Tkinter background