有没有办法给每个变量在一个列表中保持tk.IntVar()?



我想知道如何缩短代码(下面)通过使用列表:

photo_name = tk.IntVar()
lat = tk.IntVar()
lon = tk.IntVar()
ts = tk.IntVar()
gps_lat_r = tk.IntVar()
gps_lat = tk.IntVar()
gps_lon_r = tk.IntVar()
gps_lon = tk.IntVar()
gps_img_d_r = tk.IntVar()
gps_img_d = tk.IntVar()
gps_info = tk.IntVar()

我已经试过了:

meta_data = [
photo_name, lat, lon, ts, gps_lat_r, gps_lat, gps_lon_r, gps_lon, gps_img_d_r, gps_img_d, gps_info
]
x = 0
for c in meta_data:
c[x] = tk.IntVar()
x = x + 1

但是一个错误返回'name 'photo_name'没有定义。

这个解决方案对这个问题有效。

meta_data = [
'photo_name', 'lat', 'lon', 'ts', 'gps_lat_r', 'gps_lat', 'gps_lon_r', 'gps_lon', 'gps_img_d_r', 'gps_img_d', 'gps_info'
]
variables = dict()
for c in meta_data:
variables[c] = tk.IntVar()

最新更新