我有一个列表,我想用它来填充tkinter中的选项菜单。 我已经进行了广泛的搜索,无法找到有效的解决方案...感谢任何帮助!
from tkinter import *
from tkinter.ttk import *
from tkinter import messagebox
import tkinter as tk
from tkinter import ttk
class TestGUI(Frame):
def __init__(self, root):
Frame.__init__(self, root)
self.root = root
self.pack()
self.mylist = ['test','test2','test3']
self.emailDropDown= OptionMenu(root,self.mylist)
self.emailDropDown.pack()
root = Tk()
gui = TestGUI(root)
root.mainloop()
答案 0 :(得分:0)
OptionMenu
的第一个参数不是父级和选项列表,它们是父级,变量和选项列表。
因此,如果您想按位置而不是按名称传递参数,则需要将选项列表作为第三个传递,而不是第二个。
有关示例,请参阅Tkinter book chapter on OptionMenu
。
答案 1 :(得分:0)
from tkinter import *
from tkinter.ttk import *
from tkinter import messagebox
import tkinter as ttk
from tkinter import ttk
import tkinter.ttk as ttk
class TestGUI(Frame):
def __init__(self, root):
Frame.__init__(self, root)
self.root = root
self.pack()
self.mylist = ['test','test2','test3']
variable = StringVar()
variable.set(self.mylist[0]) # default value
self.w = OptionMenu(*(root, variable) + tuple(self.mylist))
self.w.pack()
root = Tk()
gui = TestGUI(root)
root.mainloop()
这样可行,但是,当您选择它时,第一个列表选项会消失。仍在尝试找到对此的答案