【问题标题】:Can I open two Tkinter Windows at the same time?我可以同时打开两个 Tkinter Windows 吗?
【发布时间】:2017-04-21 21:30:44
【问题描述】:

可以同时打开两个窗口吗?

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()

我在第一张地图上画线,然后将它们优化到第二张地图上的不同位置。此处未显示该部分,但我只想同时打开两个窗口,并让随机起点朝向第二个窗口中最近的位置。如果我一次运行一个,一切正常,但我必须注释掉另一半。

【问题讨论】:

    标签: python tkinter python-3.4


    【解决方案1】:

    创建第一个窗口后,另一个窗口必须是顶层窗口

    查看此链接到 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()
    

    【讨论】:

    • 您可能想提一下,您还必须只调用一次mainloop
    • 是的,你是对的。在更新我的答案之前,我正在使用代码试图让它在我的最终工作。
    猜你喜欢
    • 2013-10-15
    • 2022-11-25
    • 2017-04-03
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 2018-11-17
    相关资源
    最近更新 更多