微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在画布上使用标签

如何解决如何在画布上使用标签

我正在设计一个 GUI,我希望在多个选项卡中显示不同的图像,并且我正在使用画布。但是,当我在一个选项卡中打开图像时,它会打开,但是当在另一个选项卡中打开图像时,在上一个选项卡中打开的图像会被清除。

    root = Tk()
    root.title('Text-Editor')
    root.resizable(width=True,height=True)
    root.geometry("1400x660")
    root.columnconfigure(0,weight=1)
    root.rowconfigure(0,weight=1)
    
    my_frame = Frame(root)
    my_frame.grid(row=0,column=0,sticky="nswe")
    my_frame.columnconfigure(0,weight=1)
    my_frame.columnconfigure(1,weight=6)
    my_frame.rowconfigure(0,weight=1)
    
    left_frame = Frame(my_frame)
    left_frame.grid(row=0,sticky="nswe")
    left_frame.columnconfigure(0,weight=1)
    left_frame.rowconfigure(0,weight=1)
    right_frame = Frame(my_frame)
    right_frame.grid(row=0,column=1,sticky="nswe")
    right_frame.columnconfigure(0,weight=1)
    right_frame.rowconfigure(0,weight=1)
    
    tabcontrol = ttk.Notebook(right_frame)
    tabcontrol.grid(row = 0,column = 0,sticky = "nswe")
    
    my_menu = Menu(root)
    root.config(menu=my_menu)
    
    scrollbar_object = Scrollbar(left_frame)
    scrollbar_object2 = Scrollbar(right_frame)
    scrollbar_object.grid(row=0,sticky='ns')
    scrollbar_object2.grid(row=0,sticky='ns')
    def permap_img():
        global img
        per_map(gpath)
        xscrollbar = Scrollbar(right_frame,orient=HORIZONTAL)
        xscrollbar.grid(row=1,sticky=E + W)
        yscrollbar = Scrollbar(right_frame)
        yscrollbar.grid(row=0,sticky=N + S)
        canvas_1 = Canvas(right_frame,bd=0,xscrollcommand=xscrollbar.set,yscrollcommand=yscrollbar.set)
        canvas_1.grid(row=0,sticky=N + S + E + W)
        file = "map.png"
        img = ImageTk.PhotoImage(Image.open(file))
        canvas_1.create_image(0,image=img,anchor=CENTER)
        canvas_1.config(scrollregion=canvas_1.bBox(ALL))
        xscrollbar.config(command=canvas_1.xview)
        yscrollbar.config(command=canvas_1.yview)
        tabcontrol.add(canvas_1)
    
    def nvd_img():
        global img
        nvdmap(gpath)
        xscrollbar = Scrollbar(right_frame,sticky=N + S)
        canvas_2 = Canvas(right_frame,yscrollcommand=yscrollbar.set)
        canvas_2.grid(row=0,sticky=N + S + E + W)
        file = "nvd_map.png"
        img = ImageTk.PhotoImage(Image.open(file))
        canvas_2.create_image(0,anchor="center")
        canvas_2.config(scrollregion=canvas_2.bBox(ALL))
        xscrollbar.config(command=canvas_2.xview)
        yscrollbar.config(command=canvas_2.yview)
        tabcontrol.add(canvas_2)
visual_menu = Menu(my_menu,tearoff = False)
my_menu.add_cascade(label = "Visualize",menu = visual_menu)
permissions_menu.add_command(label = "normal Vs Dangerous",command = nvd_img)
permissions_menu.add_command(label = "Permission Categories",command = permap_img)

这是我迄今为止尝试过的代码。谁能帮我解释为什么会这样?滚动条也在一个标签中工作,当我在另一个标签中打开新图像时它不起作用

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。