[英]How will be correct open new window from imported script (tkinter, python)?
來自example_script.py的小部件tk.Entry不保存值“ textvariable”字段。
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(self,textvariable = textVar).pack()'更改為
entryVar = tk.Entry(self)
entryVar.pack()
entryVar.insert(0, text)
字段的值已更新。 為什么?
如何正確地從導入的腳本打開新窗口? Tkinter.Toplevel()不適合。 現在我使用subprocess.Popen。
當您執行entryVar = tk.Entry(self).pack()
, entryVar
將被設置為None
因為這是pack()
返回的結果。 當您在單獨的行上調用pack
時, entryVar
會設置為您認為的功能。
您不能在一個程序中創建Tk
類的兩個實例。 Tkinter並非以這種方式工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.