首页 > 解决方案 > 将 Python Tkinter IntVar() 列表转换为常规 int 列表?

问题描述

使用 Tkinter get() 函数,我可以在一些 Tkinter 复选框中获取 IntVar() 值:

wind_solar = IntVar()
wind_CC = IntVar()
wind_CT = IntVar()
renewables = [wind_solar.get(), wind_CC.get(), wind_CT.get()]
print("renewable resources to simulate:", '\n', renewables)

打印输出为 [1, 0, 1],这在技术上是正确的,但它打印为 IntVar 列表,而我想将其打印为整数列表(即非 Tkinter 列表)。即我只想将 IntVar 列表转换为常规列表。帮助?

标签: pythontkinter

解决方案


我只想将 IntVar 列表转换为常规列表。帮助?

如果是这种情况,请不要将值转换为IntVars

window_solar = IntVar()
wind_CC = IntVar()
wind_CT = IntVar()
...
renewables = [wind_solar.get(), wind_CC.get(), wind_CT.get()]
print("renewable resources to simulate:", '\n', renewables)

或者,如果您已经有一个IntVars 列表,则可以使用列表推导:

vars = [window_solar, wind_CC, wind_CT]
...
renewables = [var.get() for var in vars]
print("renewable resources to simulate:", '\n', renewables)

推荐阅读