來自example_script.py的小部件tk.Entry不保存值'textvariable'字段。如何正確的從導入的腳本(tkinter,python)打開新窗口?
example_script.py:
import Tkinter as tk
class App(tk.Frame):
def __init__(self, master, text):
tk.Frame.__init__(self, master)
textVar = tk.StringVar()
textVar.set(text)
entryVar = tk.Entry(self, textvariable=textVar).pack()
self.pack()
def main():
root = tk.Tk()
text = ['text1', 'text2', 'text3']
for i in text:
App(root, i)
root.mainloop()
main_script.py:
import Tkinter import example_script as ex
if __name__ == '__main__':
root = Tkinter.Tk()
Tkinter.Button(root, text='press', command=lambda: ex.main()).pack()
root.mainloop()
如果更改行 'entryVar = tk.Entry(個體,textvariable = textVar).pack()' 來
entryVar = tk.Entry(self)
entryVar.pack()
entryVar.insert(0, text)
字段的值被更新。爲什麼?
如何從導入的腳本中正確打開新窗口? Tkinter.Toplevel()不適合。現在我使用subprocess.Popen。
我知道。因此,這種不同的行爲很有趣。我的故事:有一個腳本不能改變。該腳本創建一個窗口。現在我使用模塊子進程(Popen)從其他窗口(按下按鈕時)調用它。有其他方法嗎? – vostbur
你在評論中提出的是一個完全不同的問題。如果您使用popen來產生另一個進程,那麼與原始問題完全不同。 –
對不起。大概應該被分成兩個問題。謝謝。 – vostbur