【问题标题】:Can't make random color in tkinter无法在 tkinter 中制作随机颜色
【发布时间】:2022-12-06 05:51:37
【问题描述】:

我想以 10 种不同的随机颜色插入我的文本,但 tag_configure 仍然保存第一种颜色,它向我展示了 10 种使用相同第一种颜色的打印。 我认为问题出在名字上。


def write10(affich):

  for i in range(11) :
        color = '#'+("%06x"%random.randint(0,16777215))
        print(color)
        my_text2.tag_configure('name', background = color)
        my_text2.insert(0.2,affich,"name")

【问题讨论】:

    标签: python user-interface tkinter tkinter-canvas tkinter-entry


    【解决方案1】:

    在您的代码中,您对要设置的每种颜色使用相同的名称(“名称”),这就是为什么只有第一种颜色应用于您的文本。为了解决这个问题,您需要为您设置的每种颜色使用不同的名称,然后在插入文本时使用相应的名称。

    一种方法是在 for 循环中使用 i 变量作为每种颜色的名称,如下所示:

    for i in range(11):
        color = '#'+("%06x"%random.randint(0,16777215))
        my_text2.tag_configure(i, background = color)
        my_text2.insert(0.2,affich,I)
    

    这将为每种颜色创建不同的标签,并在插入文本时使用相应的标签。

    或者,您可以创建一个颜色名称列表并使用 enumerate 函数遍历该列表并设置颜色,如下所示:

    color_names = ["red", "green", "blue", ...]
    
    for i, name in enumerate(color_names):
        color = '#'+("%06x"%random.randint(0,16777215))
        my_text2.tag_configure(name, background = color)
        my_text2.insert(0.2,affich,name)
    

    我希望这有帮助!

    【讨论】:

      猜你喜欢
      • 2018-04-02
      • 1970-01-01
      • 2014-05-21
      • 2017-08-03
      • 2015-06-29
      • 2018-08-26
      • 2021-02-05
      相关资源
      最近更新 更多