代码如下(示例):解决设置current()默认值不成功
from tkinter import ttk
import tkinter as tk
class MyWindow():
def __init__(self):
self.wind = tk.Tk()
self.values = [1,2,3,4]
def func1(self):
val = tk.StringVar()
combo = ttk.Combobox(self.wind, width=12, textvariable=val, state='readonly')
combo['values'] = self.values
combo.grid()
# 设置默认值函数
combo.current(1)
def main(self):
self.wind.title('下拉框设置默认值')
self.wind.geometry('50x50')
self.func1()
self.wind.mainloop()
if __name__ == '__main__':
m = MyWindow()
m.main()
代码如下(示例):这样默认值是设置不了的,具体的原因我觉得就是个bug,没有研究过。如果想要设置默认值成功需要将函数func1()中的combo返回出去在外部调用current函数。
from tkinter import ttk
import tkinter as tk
class MyWindow():
def __init__(self):
self.wind = tk.Tk()
self.values = [1,2,3,4]
def func1(self):
val = tk.StringVar()
combo = ttk.Combobox(self.wind, width=12, textvariable=val, state='readonly')
combo['values'] = self.values
combo.grid()
# 设置默认值函数
# combo.current(1)
return combo
def main(self):
self.wind.title('下拉框设置默认值')
self.wind.geometry('300x50')
self.func1().current(0)
self.wind.mainloop()
if __name__ == '__main__':
m = MyWindow()
m.main()



