我有primary.py:Tkinter的是在文件選擇與多重打開多個GUI窗口,當只有一個窗口應該存在
from tkinter import *
from tkinter.filedialog import askopenfilename
from tkinter import ttk
import multiprocessing as mp
import other_script
class GUI:
def __init__(self, master):
self.master = master
def file_select():
path = askopenfilename()
if __name__ == '__main__':
queue = mp.Queue()
queue.put(path)
import_ds_proc = mp.Process(target=other_script.dummy, args=(queue,))
import_ds_proc.daemon = True
import_ds_proc.start()
# GUI
root = Tk()
my_gui = GUI(root)
# Display
frame = Frame(width=206, height=236)
frame.pack()
ttk.Button(frame, text="Select", command=file_select).pack(anchor='nw')
# Listener
root.mainloop()
而且other_script.py:
def dummy(parameter):
pass
運行此,在選擇文件後,會出現第二個GUI窗口。爲什麼?這是不受歡迎的行爲,我反而想要dummy
運行。
謝謝。
使用root .withdraw()消除Tk()窗口(您發送給GUI)。 askopenfilename()打開它自己的窗口,這是你看到的第二個窗口http://effbot.org/tkinterbook/wm.htm請注意,「dummy」將在從askopenfilename返回後運行。 –