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()
Et other_script.py:
def dummy(parameter):
pass
Lors de l'exécution de cette, lors de la sélection d'un fichier, une seconde fenêtre GUI apparaît. Pourquoi? C'est un comportement indésirable, je veux plutôt dummy
pour fonctionner.
Merci.
Utiliser la racine .withdraw() pour éliminer la fenêtre Tk() (que vous envoyez à l'interface graphique). askopenfilename() ouvre sa propre fenêtre, qui est la deuxième que vous voyez http://effbot.org/tkinterbook/wm.htm Notez que "dummy" sera exécuté après le retour de askopenfilename. –