鱼C论坛

 找回密码
 立即注册
查看: 34|回复: 5

Tkinter 怎 么 没 有 显 示 blue 呢 ?

[复制链接]
发表于 5 小时前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

  1. from tkinter import *
  2. root=Tk()
  3. v=["海澜之家","啄木鸟","班尼路","真维斯","花花公子","皮尔卡丹",
  4.    "杉杉","优衣库","恒源祥","森马","雅戈尔","七匹狼","太平鸟"]
  5. w=["red","green","blue"]
  6. for i in range(len(v)):
  7.       if i%3 !=0 :
  8.             u=w[0]
  9.       elif i%3 !=1 :
  10.             u=w[1]
  11.       else :
  12.             u=w[2]
  13.       Button(root,text=v[i],background=u).pack()
  14. mainloop()
复制代码



需求交替显示 red  green blue , 怎么修改呢 ?
无标题.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 5 小时前 | 显示全部楼层
关于Tkinter颜色显示的问题:  
您的代码中 vw 没有定义,同时循环条件判断逻辑有误。要实现 redgreenblue 交替显示,需要先定义一个颜色列表,然后根据索引取模3来分配颜色。  

修改后的代码:  
  1. from tkinter import *  
  2. root = Tk()  
  3. colors = ['red', 'green', 'blue']  # 定义颜色列表  
  4. for i in range(3):  
  5.     Button(root, text=colors[i], bg=colors[i]).pack()  
  6. mainloop()
复制代码


说明:  
1. 定义 colors 列表存储三种颜色。  
2. 循环 for i in range(3) 依次创建三个按钮,每个按钮的文字和背景色都取自列表中的对应颜色。  
3. 使用 bg 参数设置背景色,这里 bg=colors[i] 即可。  

这样就能正确显示红、绿、蓝三个按钮了。如果您希望循环创建更多按钮(例如重复三种颜色),可以修改循环范围并取模:  
  1. for i in range(9):  
  2.     color = colors[i % 3]  
  3.     Button(root, text=color, bg=color).pack()
复制代码


注意:您上传的图片(bg3.png)在代码中未使用,如需背景图请参考 Tkinter PhotoImageCanvas

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 小时前 | 显示全部楼层
将!改为=就行
  1. from tkinter import *
  2. root=Tk()
  3. v=["海澜之家","啄木鸟","班尼路","真维斯","花花公子","皮尔卡丹",
  4.    "杉杉","优衣库","恒源祥","森马","雅戈尔","七匹狼","太平鸟"]
  5. w=["red","green","blue"]
  6. for i in range(len(v)):
  7.       if i%3 ==0 :
  8.             u=w[0]
  9.       elif i%3 ==1 :
  10.             u=w[1]
  11.       else :
  12.             u=w[2]
  13.       Button(root,text=v[i],background=u).pack()
  14. mainloop()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 3 小时前 | 显示全部楼层


等于 == 就可以的,问题就是为什么 不等于 !=  就不行呢 ?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 1 小时前 | 显示全部楼层
dragov 发表于 2026-6-15 10:07
等于 == 就可以的,问题就是为什么 不等于 !=  就不行呢 ?

i 是从0 开始取值的,进入循环后第一个if,结果为0,不符合,进入第二个if,结果为0,符合 !=1,海澜之家为绿色;i取1 ,进入第一个if,结果为1,符合!=0, 啄木鸟为红色;i 取2 ,进入第一个if 也符合,班尼路为红色。i取3,进入第一个if 结果为0 ,不符合进入第二个if 符合!=1,真维斯为绿色。然后就循环了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 1 小时前 | 显示全部楼层
原来的!代码相当于:
      if i%3 ==1 or i%3 ==2:
            u=w[0]
      elif i%3 ==0 or i%3 ==2:
            u=w[1]
      else :
            u=w[2]
所以就没有u=w[2]的情况了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-6-15 13:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表