|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 Daniel_Zhang 于 2021-1-23 00:50 编辑
请各位老板,大佬帮忙解答一下,谢谢~
问题如下:我不是很理解,那个 value 'A' 'B' 'C' 是如何传递给 var 的。var 在 print_selection 那里直接 var.get() 就获取到了选中的值。这是怎么做到的?
另外, variable 是什么,就是 variable = var 那里的?value 又是什么?
- import tkinter as tk
- window = tk.Tk()
- window.title('my window')
- window.geometry('200x200')
- var = tk.StringVar()
- l = tk.Label(window, bg = 'yellow', width = 15, text = 'empty')
- l.pack()
- def print_selection():
- l.config(text = 'you have selected ' + var.get())
- var.set(0)
- radio_button1 = tk.Radiobutton(window, text = 'Option A', variable = var, value = 'A', command = print_selection)
- radio_button1.pack()
- radio_button2 = tk.Radiobutton(window, text = 'Option B', variable = var, value = 'B', command = print_selection)
- radio_button2.pack()
- radio_button3 = tk.Radiobutton(window, text = 'Option C', variable = var, value = 'C', command = print_selection)
- radio_button3.pack()
- window.mainloop()
复制代码
p.s 结贴迅速,如果是最佳,绝不拖拉~
- # coding=utf-8
- import tkinter as tk
- window = tk.Tk()
- window.title('my window')
- window.geometry('200x200')
- var = tk.StringVar() # 保存一个字符串类型数据
- l = tk.Label(window, bg = 'yellow', width = 25, text = 'empty')
- l.pack()
- def print_selection():
- l.config(text = 'you have selected ' + var.get())
- # get方法为获取 var 所保存的变量值 value
- # 定义函数,重新配置 label 的显示文本text内容
- var.set(0) # set 为 StringVar 的设置方法,下面代码中有把它和 Radiobutton 单选按钮绑定
- radio_button1 = tk.Radiobutton(window,
- text = 'Option A',
- variable = var, value = 'A',
- command = print_selection)
- # text 是单选按钮所显示文本,并非其所存储的值 value
- # variable 通过传入特定参数 variable 直接和一个程序变量绑定tk.StringVar()
- # 而且是双向绑定,如果该变量发生改变, 与该变量绑定的控件也会随之更新
- # command 就是按钮,在单选按钮中就是选中的意思,如果选中则执行该函数
- # 而该函数才是 var.get 的直接执行者,将单选按钮值 value重新配置在 label 的 text
- radio_button1.pack()
- radio_button2 = tk.Radiobutton(window,
- text = 'Option B',
- variable = var, value = 'B',
- command = print_selection)
- radio_button2.pack()
- radio_button3 = tk.Radiobutton(window,
- text = 'Option C',
- variable = var, value = 'C',
- command = print_selection)
- radio_button3.pack()
- window.mainloop()
复制代码
|
|