繁体   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