鱼C论坛

 找回密码
 立即注册
查看: 1363|回复: 9

[已解决]提问tkinter的StringVar相关问题

[复制链接]
发表于 2020-3-13 17:10:43 | 显示全部楼层 |阅读模式

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

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

x
想请问一下大家为什么我这个程序运行会显示AttributeError: Module "tkinter" has no attribute"Stringvar", 按理来说这个StringVar不就是tkinter模块下的属性吗?
而且我就是这个程序有问题,另外的用到stringvar的程序却没有这样报错。
下面的代码第一个是有问题的,第二个是没有问题的。
  1. import tkinter as tk
  2. window = tk.Tk()
  3. window.geometry("400x400")

  4. var1 = tk.StringVar()
  5. l = tk.Label(window, textvariable = var1, bg = "yellow")
  6. l.pack()

  7. def click():
  8.     value = lb.get(lb.curselection())
  9.     var1.set(value)
  10. b = tk.Button(window, text = "print", command = click)
  11. b.pack()

  12. var2 = tk.Stringvar()
  13. var2.set(11,22,33,44)
  14. lb = tk.Listbox(window, listvariable = var2 )
  15. items = (a,b,c,d)
  16. for item in items:
  17.     lb.insert("end", item)
  18. lb.pack()
  19. window.mainloop()
复制代码

  1. import tkinter as tk

  2. #创建并设置主窗口
  3. window = tk.Tk()
  4. window.title("my window")
  5. window.geometry("500x300")

  6. #创建并设置label
  7. var = tk.StringVar()

  8. l = tk.Label(window, textvariable = var, bg = "red")
  9. l.pack()

  10. #创建button并使用
  11. flag = False
  12. def hit():
  13.     global flag
  14.     if not flag:
  15.         flag = True
  16.         var.set("you hit me")
  17.         
  18.     else:
  19.         flag = False
  20.         
  21.         var.set("")
  22.    
  23. b = tk.Button(window, text = "hit me", command = hit)
  24. b.pack()
  25. #主窗口循环
  26. window.mainloop()
复制代码
最佳答案
2020-3-13 21:20:45
wanton 发表于 2020-3-13 21:18
所以这就是我不明白的地方,我都是把我对的程序里面的StringVar复制到那个错的程序里面,然后就报这个错

你写成了 Stringvar,看第 15 行:

  1. import tkinter as tk
  2. window = tk.Tk()
  3. window.geometry("400x400")

  4. var1 = tk.StringVar()
  5. l = tk.Label(window, textvariable = var1, bg = "yellow")
  6. l.pack()

  7. def click():
  8.     value = lb.get(lb.curselection())
  9.     var1.set(value)
  10. b = tk.Button(window, text = "print", command = click)
  11. b.pack()

  12. var2 = tk.StringVar()   # 修改
  13. var2.set(11,22,33,44)
  14. lb = tk.Listbox(window, listvariable = var2 )
  15. items = (a,b,c,d)
  16. for item in items:
  17.     lb.insert("end", item)
  18. lb.pack()
  19. window.mainloop()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-13 17:17:31 | 显示全部楼层
StringVar 不是 Stringvar
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-13 18:14:14 | 显示全部楼层
一个账号 发表于 2020-3-13 17:17
是 StringVar 不是 Stringvar

正解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-13 21:09:32 | 显示全部楼层
一个账号 发表于 2020-3-13 17:17
是 StringVar 不是 Stringvar

可是我写的就是StringVar啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-13 21:10:34 | 显示全部楼层
wanton 发表于 2020-3-13 21:09
可是我写的就是StringVar啊

那你的报错信息为什么是 Stringvar
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-13 21:18:55 | 显示全部楼层
一个账号 发表于 2020-3-13 21:10
那你的报错信息为什么是 Stringvar

所以这就是我不明白的地方,我都是把我对的程序里面的StringVar复制到那个错的程序里面,然后就报这个错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-13 21:20:45 | 显示全部楼层    本楼为最佳答案   
wanton 发表于 2020-3-13 21:18
所以这就是我不明白的地方,我都是把我对的程序里面的StringVar复制到那个错的程序里面,然后就报这个错

你写成了 Stringvar,看第 15 行:

  1. import tkinter as tk
  2. window = tk.Tk()
  3. window.geometry("400x400")

  4. var1 = tk.StringVar()
  5. l = tk.Label(window, textvariable = var1, bg = "yellow")
  6. l.pack()

  7. def click():
  8.     value = lb.get(lb.curselection())
  9.     var1.set(value)
  10. b = tk.Button(window, text = "print", command = click)
  11. b.pack()

  12. var2 = tk.StringVar()   # 修改
  13. var2.set(11,22,33,44)
  14. lb = tk.Listbox(window, listvariable = var2 )
  15. items = (a,b,c,d)
  16. for item in items:
  17.     lb.insert("end", item)
  18. lb.pack()
  19. window.mainloop()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-13 21:21:52 | 显示全部楼层
一个账号 发表于 2020-3-13 21:20
你写成了 Stringvar,看第 15 行:

我晕,我看到了,我还在纠结第一个StringVar为啥有问题,原来是第二个,谢谢啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-9 02:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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