首页 > 解决方案 > 如何在两个带有画布的单独窗口中打印文本?

问题描述

我想在一个窗口中打印文本 AAAAAAA 并在另一个窗口中打印 BBBBBBB 但是我如何使用画布来做到这一点?

from tkinter import*

root = Tk()
canvas = Canvas(root)

canvas.pack(fill=BOTH, expand=1) # Stretch canvas to root window size.

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)


toplevel()

l0 = Label(canvas, text="AAAAAAA", font= "calibri 32 bold",bg="white" )
canvas.create_window(0,70, window=l0, anchor=NW)

l1 = Label(canvas, text="BBBBBBB", font= "calibri 32 bold",bg="white" )
canvas.create_window(0,70, window=l1, anchor=NW)

root.mainloop()

标签: pythontkintertkinter-canvas

解决方案


optimized_canvas与第二个标签一起使用

import tkinter as tk

# ---

root = tk.Tk()

canvas = tk.Canvas(root)
canvas.pack(fill='both', expand=True)

l0 = tk.Label(canvas, text="AAAAAAA")
canvas.create_window(0, 70, window=l0, anchor='nw')

# ---

top = tk.Toplevel(root)

optimized_canvas = tk.Canvas(top)
optimized_canvas.pack(fill='both', expand=True)

l1 = tk.Label(optimized_canvas, text="BBBBBBB")
optimized_canvas.create_window(0, 70, window=l1, anchor='nw')

# ---

root.mainloop()

如果您在函数中创建画布,则将其分配给局部变量,您必须将其返回并分配给外部/全局变量才能使用它。

import tkinter as tk

# --- functions ---

def create_top(root):

    top = tk.Toplevel(root)

    local_canvas = tk.Canvas(top)
    local_canvas.pack(fill='both', expand=True)

    return local_canvas

# ---

root = tk.Tk()

canvas = tk.Canvas(root)
canvas.pack(fill='both', expand=True)

l0 = tk.Label(canvas, text="AAAAAAA")
canvas.create_window(0, 70, window=l0, anchor='nw')

# ---

optimized_canvas = create_top(root)

l1 = tk.Label(optimized_canvas, text="BBBBBBB")
optimized_canvas.create_window(0, 70, window=l1, anchor='nw')

# ---

root.mainloop()

推荐阅读