0
不久前,我问了一个关于如何从输入语句导入的问题。搞定了。现在我将冗长的代码升级到用户的GUI。同样的问题。如何根据tkinter widget Entry中的用户输入导入模块。 我本来有:从tkinter Widget导入模块
var1=__import__(input("Enter a module: "))
,并试图像这样:
import tkinter
var1=__import__(tkinter.Entry(top, bd=5)).pack()
几个不同的措辞都导致基本错误:
TypeError: __import__() argument 1 must be str, not Entry
我有几个不同的方法仍在我的名单上试试。例如:
var1=Entry(top, bd=5).grid(row=7)
var2=Entry.get(var1)
var=__import__(var2)
这给了我相当可怕的错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
return self.func(*args)
File "C:\Python33\Doc\Project\testing.py", line 21, in finish
var2=Entry.get(var1)
File "C:\Python33\lib\tkinter\__init__.py", line 2512, in get
return self.tk.call(self._w, 'get')
AttributeError: 'NoneType' object has no attribute 'tk'
你应该mentio ñ你写的代码不起作用。您可能想提及导入需要完成以响应按钮点击,按回车等事件。如果在创建小部件后立即调用.get(),您将始终获得空字符串。我知道这很明显,但它可能不是OP。 –
我迷惑了我的其他理论,以了解需要一个按钮(或其他方法),但谢谢。我现在没有时间来尝试这个,但只要我这样做,我会分享结果。谢谢! – Matt
谢谢,效果很好。起初我遇到了一个问题,在导入的模块中寻找一个变量,然后我意识到我很愚蠢。奇迹般有效。 – Matt