无法设置 Combobox 或 Spinpox 的默认值。在主窗口中,一切正常,但如果您运行完全相同的操作,但在单独的窗口中,在其他窗口之上,则不会指示该值,尽管您可以从下拉列表中选择一个选项。
简化代码:
from tkinter import *
from tkinter import ttk
mainw = Tk()
## ОКНА;
tab_control = ttk.Notebook(mainw)
add_tag = ttk.Frame(tab_control)
tab_control.add(add_tag, text="Add tags")
tab_control.pack(expand=1, fill='both')
default_authors_data = StringVar(value="pixiv")
authors_list_data = ["pixiv", "twitter", "artstation", "devianart", "instagram", "other"]
authors_list = ttk.Combobox(add_tag, values=authors_list_data, textvariable=default_authors_data, state="readonly", width=18)
authors_list.pack()
def description_window():
popup = Toplevel()
popup.title("Menu:")
type_options = ["description", "object", "other", "author", "copyright", "character", "unknown"]
type_selected_value = StringVar(value="description") ## значение по умолчанию;
type_combo = ttk.Combobox(popup, values=type_options, textvariable=type_selected_value, state="readonly", width=20, font=("Arial", 13))
type_combo.pack(side='top', anchor='w', padx=30, pady=10)
descption_window_btn = Button(add_tag, text="Check description", command=description_window, width=16)
descption_window_btn.pack()
mainw.mainloop()
单击主窗口中的“检查描述”按钮后,顶部会打开一个附加窗口,其中有一个下拉列表,其中列出了列表中的指定值。默认情况下,应从type_selected_value (描述)变量设置该值,但实际上根本没有值。您需要手动选择。
在主窗口中,完全相同的下拉列表,只是具有不同的值,可以正常工作并设置默认值。
有没有办法解决这个问题或者问题的原因是什么?
set您只需从主窗口中选定的元素即可安装它。顺便说一句,在Pydroid 3 上,
type_selected_value = StringVar(value="description")它可以工作并设置默认值。在Win10 上,该参数textvariable对于新窗口不起作用,我得到一个空列表 - 我需要手动选择它。但
set一切正常 -type_combo.set("description")值已设置。