Jaden-Dz99
Jaden-Dz99

Reputation: 139

Is there a way to give each variable in a list to hold tk.IntVar()?

I would like to know how to shorten the code (below) by using a list:

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

What I have tried:

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

However an error returns 'name 'photo_name' is not defined.

Upvotes: 0

Views: 178

Answers (1)

Jaden-Dz99
Jaden-Dz99

Reputation: 139

This solution works for the question.

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

Upvotes: 2

Related Questions