我在python中有一个简单的应用程序。当我单击一个按钮时,它应该多次打开同一文件。但是,经过两次该程序将无法再打开任何窗口。
到目前为止,这是我对file1的代码:
from tkinter import *
root = Tk()
root.geometry("600x600")
def newWin():
import file1
button = Button(root, text="Open Window of same file", command=newWin)
button.pack()
root.mainloop()
单击按钮一次后,它将在新窗口中打开相同的文件,但是当我单击该窗口中的按钮时,它将不起作用。我该如何解决?
答案 0 :(得分:1)
import file1
仅导入file1
并在file1
内执行一次代码。再次调用import file1
时,将不会发生任何事情,因为file1
已被导入。
要解决此问题,您可以将代码放入函数中,并在导入file1
后调用该函数:
# file1.py
import tkinter as tk
def main():
root = tk.Tk()
root.geometry('600x600')
def new_win():
import file1
file1.main()
button = tk.Button(root, text='Open Window of same file', command=new_win)
button.pack()
root.mainloop()
if __name__ == '__main__':
main()
但是,在file1
中导入file1
并不是一个好习惯,应该避免。
以上代码仅是解决导入问题的演示。实际上,您不需要在import file1
内部调用file1
,只需调用main()
:
# file1.py
import tkinter as tk
def main():
root = tk.Tk()
root.geometry('600x600')
button = tk.Button(root, text='Open Window of same file', command=main)
button.pack()
root.mainloop()
if __name__ == '__main__':
main()
答案 1 :(得分:-1)
您的按钮没有命令参数,否则将无效。
button = Button(root, text="Open Window of same file", command = newWin)
此外,在导入文件时更改添加.py
扩展名:
import file1.py