我试图创建3组不同长度的复选框列表,然后在tkinter GUI中的页面上的三列中显示它们。列表1将是一个基于整数的列表,其中2个是字符串。这些列表名称的变量在GUI启动之前在代码中定义。 N_index = [1, 2, 3]
T_index = [T1, T2, T3]
P_index = [P1, P2, P3]
在tkinter中创建多个复选框
的列表的长度将每个代码运行所以时间改变我已经使用这个:
N_leng = range(1, int(len(N_index)+1))
T_leng = range(1, int(len(T_index)+1))
P_leng = range(1, int(len(P_index)+1))
我已经部分使用的代码来创建我的GUI是从这里取的Switch between two frames in tkinter(谢谢)
我试图将这些列表放入第一页。我有3组复选框。当我运行它运行的代码并且永远不会结束。但是即使在调试模式下它也不会产生错误。有人能发现我的错误吗?
def ckbox_params():
for i, j in zip(N_index, N_leng):
ivar = tk.IntVar()
N_selection1 = tk.Checkbutton(f, text="%d" % i, variable=ivar, onvalue=i, offvalue="")
N_selection1.grid(sticky="nw", pady=4)
for i, k in zip(T_index, T_leng):
svar = tk.StringVar()
T_selection1 = tk.Checkbutton(f, text="%s" % i, variable=svar, onvalue=i, offvalue="")
T_selection1.grid(sticky="nw", pady=4)
for i, l in zip(P_index, P_leng):
svar = tk.StringVar()
P_selection1 = tk.Checkbutton(f, text="%s" % i, variable=svar, onvalue=i, offvalue="")
P_selection1.grid(sticky="nw", pady=4)
ckbox_params()`
任何建议,想法或解决方案将有助于我做错了什么。
谢谢
你在哪里创建根窗口? 'ckbox_params'如何知道'f'?如果您发布[mcve],这将有所帮助。 –
你为什么要做int(len(...))'? 'len'返回一个int。 –
对不起PM 2Ring我不知道你需要多少信息。我对这一切都很陌生,这是我第一次尝试OOP,所以我犯了错误。 – OParker