更改循环中生成的 tkinter 按钮的颜色

假货

在 python tkinter 中,我有一个程序可以生成多个默认fg为红色的按钮

from tkinter import *

root = Tk()

def dothis(i):
    print(i)
    button.config(fg='green')

for i in range(5):
    button = Button(root, width=30, text="button{}".format(i), command=lambda i=i: dothis(i))
    button.config(fg='red')
    button.pack()

这将创建此窗口:

在这个程序中,我试图让按下按钮后,文本 ( fg)的颜色变为绿色。相反,当dothis(i)被调用时,它会将生成的最后一个按钮的颜色更改为绿色。这不是我想要的。总而言之,当我点击 button3 时,我想看到这个:

但是相反,我看到了这个(最后生成的按钮被修改,不是我想要的):

我怎样才能解决这个问题,同时仍然保持在循环中生成的按钮?注意:更改颜色后,按钮也必须是可修改的,例如,一旦更改为绿色,就可以变回红色。

亨利·伊克

您得到了正确的lambda表达式,但您传递的参数与您创建的按钮无关。您应该将Button小部件作为参数传递

from tkinter import *

root = Tk()

def dothis(button):
    button.config(fg='green')

for i in range(5):
    button = Button(root, width=30, text="button{}".format(i))
    button.config(fg='red', command=lambda i=button: dothis(i))
    button.pack()

root.mainloop()

要实现红色和绿色之间的切换,您可以使用三元运算符:

def dothis(button):
    button.config(fg='green' if button["foreground"]=="red" else "red")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

tkinter多个按钮颜色更改

来自分类Dev

更改循环创建的tkinter按钮的颜色?

来自分类Dev

在功能中更改Tkinter按钮的颜色

来自分类Dev

python的tkinter按钮颜色更改未更新

来自分类Dev

无法更改 Tkinter 中按钮的颜色

来自分类Dev

用tkinter按下按钮时如何更改按钮的颜色?

来自分类Dev

tkinter:更改在循环中创建的按钮的按钮属性

来自分类Dev

tkinter:更改在循环中创建的按钮的按钮属性

来自分类Dev

For循环中的Tkinter按钮命令

来自分类Dev

如何更改循环中启动的Tkinter按钮的文本

来自分类Dev

Python Tkinter更改在for循环中创建的单个按钮参数

来自分类Dev

按钮的颜色 Tkinter

来自分类Dev

Tkinter按钮悬停在其上后更改颜色

来自分类Dev

tkinter:按钮颜色不更新

来自分类Dev

Tkinter 按钮颜色无故闪烁

来自分类Dev

Tkinter:更改像素的颜色

来自分类Dev

在tkinter中更改按钮

来自分类Dev

更改 tkinter 中按钮的颜色适用于 Windows,但不适用于 Mac OSX

来自分类Dev

如何重置python tkinter按钮的背景颜色?

来自分类Dev

在 tkinter 中使用 tkk 的复选按钮颜色?

来自分类Dev

如何使用python中的Tkinter使用几种选定颜色的迭代来更改python中的圆圈颜色,每次选择按钮时,这些颜色都会发生变化?

来自分类Dev

如何使用python中的Tkinter使用几种选定颜色的迭代来更改python中的圆圈颜色,每次选择按钮时颜色都会改变?

来自分类Dev

如何更改Tkinter文本颜色

来自分类Dev

在Tkinter(Python3)中的循环中声明按钮

来自分类Dev

为 Tkinter 的 for 循环中创建的按钮分配功能

来自分类Dev

更改按钮的颜色

来自分类Dev

更改按钮颜色

来自分类Dev

点击更改按钮颜色

来自分类Dev

更改UINavigationController按钮的颜色

Related 相关文章

  1. 1

    tkinter多个按钮颜色更改

  2. 2

    更改循环创建的tkinter按钮的颜色?

  3. 3

    在功能中更改Tkinter按钮的颜色

  4. 4

    python的tkinter按钮颜色更改未更新

  5. 5

    无法更改 Tkinter 中按钮的颜色

  6. 6

    用tkinter按下按钮时如何更改按钮的颜色?

  7. 7

    tkinter:更改在循环中创建的按钮的按钮属性

  8. 8

    tkinter:更改在循环中创建的按钮的按钮属性

  9. 9

    For循环中的Tkinter按钮命令

  10. 10

    如何更改循环中启动的Tkinter按钮的文本

  11. 11

    Python Tkinter更改在for循环中创建的单个按钮参数

  12. 12

    按钮的颜色 Tkinter

  13. 13

    Tkinter按钮悬停在其上后更改颜色

  14. 14

    tkinter:按钮颜色不更新

  15. 15

    Tkinter 按钮颜色无故闪烁

  16. 16

    Tkinter:更改像素的颜色

  17. 17

    在tkinter中更改按钮

  18. 18

    更改 tkinter 中按钮的颜色适用于 Windows,但不适用于 Mac OSX

  19. 19

    如何重置python tkinter按钮的背景颜色?

  20. 20

    在 tkinter 中使用 tkk 的复选按钮颜色?

  21. 21

    如何使用python中的Tkinter使用几种选定颜色的迭代来更改python中的圆圈颜色,每次选择按钮时,这些颜色都会发生变化?

  22. 22

    如何使用python中的Tkinter使用几种选定颜色的迭代来更改python中的圆圈颜色,每次选择按钮时颜色都会改变?

  23. 23

    如何更改Tkinter文本颜色

  24. 24

    在Tkinter(Python3)中的循环中声明按钮

  25. 25

    为 Tkinter 的 for 循环中创建的按钮分配功能

  26. 26

    更改按钮的颜色

  27. 27

    更改按钮颜色

  28. 28

    点击更改按钮颜色

  29. 29

    更改UINavigationController按钮的颜色

热门标签

归档