Tkinter 地图视图错误:“PhotoImage”对象没有属性“_PhotoImage__photo”

问题描述 投票:0回答:0

我正在尝试在框架内绘制地图视图,并绘制地方当局的多边形(供用户单击以选择)。

运行代码时出现以下错误,尽管小部件正在运行:

AttributeError: 'PhotoImage' object has no attribute '_PhotoImage__photo'

我使用的代码如下:

import tkinter as tk
import tkintermapview
import json
import itertools

# create tkinter window
root_tk = tk.Tk()
root_tk.geometry(f"{1000}x{700}")
root_tk.title("map_view_polygon_example.py")

# create map widget
map_widget = tkintermapview.TkinterMapView(root_tk, width=800, height=600, corner_radius=0)
map_widget.pack(fill="both", expand=True)
map_widget.set_position(53.46,-2.250)  # UK
map_widget.set_zoom(8)

# polygon click
def UpdateMap(event=None):
    tk.messagebox.showinfo("A local authority")

# get polygon shape
d = open('LA_shape.json')
shape = json.load(d)
shape = shape['features']

# for each local authority
for x in range(len(shape)):
    coord = shape[x]
    coord = coord['geometry']
    coord = coord['coordinates']
    coord = list(itertools.chain(*coord))
    coord = list(itertools.chain(*coord))
    
    # swap lat / long to long / lat
    for x in range(len(coord)):
        coord[x][0], coord[x][-1] = coord[x][-1], coord[x][0]

        map_widget.set_polygon(coord,
            # fill_color=None,
            # outline_color="red",
            # border_width=12,
            command=UpdateMap,
            name="local_authority_polygon")
    
root_tk.mainloop()

这里是 LA_shape.json 的源文件

python user-interface tkinter attributeerror tkintermapview
© www.soinside.com 2019 - 2024. All rights reserved.