簡體   English   中英

如何正確地從導入的腳本(tkinter,python)打開新窗口?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM