2017-04-21 108 views
0

是否可以同時打開2個窗口?Python:我可以同時打開兩個Tkinter Windows嗎?

import tkinter as Tk 
import random 
import math 
root = Tk.Tk() 
canvas = Tk.Canvas(root) 
background_image=Tk.PhotoImage(file="map.png") 
canvas.pack(fill=Tk.BOTH, expand=1) # Stretch canvas to root window size. 
image = canvas.create_image(0, 0, anchor=Tk.NW, image=background_image) 
root.wm_geometry("794x370") 
root.title('Map') 
root.mainloop() 

optimized_root = Tk.Tk() 
optimized_canvas = Tk.Canvas(optimized_root) 
optimized_root.pack(fill=Tk.BOTH, expand=1) 
optimized_image = second.create_image(0, 0, anchor=Tk.NW, image=background_image) 
optimized_root.wm_geometry("794x370") 
optimized_root.title('Optimized Map') 
optimized_root.mainloop() 

我在第一張地圖上繪製線條,然後將它們優化到第二張地圖上的不同位置。這部分在這裏沒有描繪,但我想要同時打開兩個窗口,並讓隨機起點向第二個窗口中的最近位置移動。如果我一次只運行一個,一切都可以工作,但我必須評論另一半。

回答

3

一旦你取得了你的第一個窗口,其他窗口需要一個Toplevel的

退房此鏈接tkinters Toplevel頁。

編輯:

我玩弄你的代碼,看看我能設法讓2個窗口打開並顯示圖像。這是我想出來的。它可能不完美,但它是一個開始,應該指向正確的方向。

我把頂層作爲一個已定義的函數,然後將其稱爲主循環的一部分。

注意:mainloop()只能調用一次。

from tkinter import * 
import random 
import math 

root = Tk() 
canvas = Canvas(root) 
background_image=PhotoImage(file="map.png") 
canvas.pack(fill=BOTH, expand=1) # Stretch canvas to root window size. 
image = canvas.create_image(0, 0, anchor=NW, image=background_image) 
root.wm_geometry("794x370") 
root.title('Map') 

def toplevel(): 
    top = Toplevel() 
    top.title('Optimized Map') 
    top.wm_geometry("794x370") 
    optimized_canvas = Canvas(top) 
    optimized_canvas.pack(fill=BOTH, expand=1) 
    optimized_image = optimized_canvas.create_image(0, 0, anchor=NW, image=background_image) 

toplevel() 

root.mainloop() 
+0

您可能想提一提,您還必須調用'mainloop'一次。 –

+0

是的你是對的。在更新我的答案之前,我正在使用代碼試圖讓它在我的結尾工作。 –

相關問題