|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
b文件定义一个下拉框,选中下拉框调用func函数
- import tkinter as tk
- from tkinter import ttk
- class Test:
- def __init__(self):
- self.lst = ['a', 'b']
- self.screen = tk.Tk()
- self.var = tk.StringVar()
- self.combobox = ttk.Combobox(self.screen, textvariable=self.var, value=self.lst)
- self.combobox.pack()
- self.combobox.current(0)
- self.combobox.bind("<<ComboboxSelected>>", self.func)
- self.screen.mainloop()
- def func(self, event):
- print(self.var.get())
- if __name__ == '__main__':
- Test()
复制代码
b文件自测能正常获取var的值
a文件通过按钮打开b文件的下拉框
- import b
- import tkinter as tk
- def fun():
- b.Test()
- if __name__ == '__main__':
- screen = tk.Tk()
- tk.Button(screen, text="测试", command=fun).pack()
- screen.mainloop()
复制代码
选中下拉框时,获取到的var的值都是空值‘’
为什么var获取不到lst列表的值呢,求解
[b]
应该是变量的作用域问题,你改成这样即可
- import tkinter as tk
- from tkinter import ttk
- class Test:
- def __init__(self):
- self.lst = ['a', 'b']
- self.screen = tk.Tk()
- self.var = tk.StringVar()
- self.combobox = ttk.Combobox(self.screen, textvariable=self.var, value=self.lst)
- self.combobox.pack()
- self.combobox.current(0)
- self.combobox.bind("<<ComboboxSelected>>", self.func)
- self.screen.mainloop()
- def func(self, event):
- print(self.combobox.get())
- if __name__ == '__main__':
- Test()
复制代码[/b]
|
|