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