你好我试图创建一个程序,它要求python模块,获取它的函数,将它们附加到列表中,并将列表值作为OptionMenu的选项。我有以下代码:
def fetch_module():
global get_module
global functionmodulename
get_module = askopenfilename(title="get module", filetypes=[("Python source","*.py")])
functionmodulename = inspect.getmodulename(get_function)
getfunctions(sys.modules[get_module])
def fetch_function(module)
global l
l = []
for key, value in module.__dict__.items():
if type(value) is FunctionType:
l.append(value)
if __name__ == "__main__":
function_name = StringVar
OptionMenu(function_name, l).pack()
fetch_module()
mainloop()
但是,如果我执行此操作," []"将显示为唯一选择。我能解决这个问题吗?
答案 0 :(得分:0)
您的代码中有几件事需要修复。首先,您需要创建Tkinter应用程序,让它称之为主。
现在您将StringVar类分配给变量function_name。这不起作用。您需要创建一个新的StringVar实例。
在OptionMenu中列出一些东西也很棘手。见:http://effbot.org/tkinterbook/optionmenu.htm
import Tkinter
# or depending on your python version: import tkinter
if __name__ == "__main__":
master = Tkinter.Tk()
sv = Tkinter.StringVar(master)
l = ['a','b','b','c']
apply( Tkinter.OptionMenu, (master, sv) + tuple(l)).pack()
Tkinter.mainloop()