我正在使用Python内置的tkinter GUI生成器。Python 3.4 - (tk/ttk/tcl)LabelFrames Manager
我做了一个功能,当一个按钮被按下时改变一个labelframe。有很多按钮,所有这些打开不同的labelframe。如果再次按下它,它将重置为默认框架。 我不能发布完整的代码,因为它太长了,但这里是你应该需要的一切。
button6 = ttk.Button(tab5, text="Button24",
command=lambda: controller.use_frame(Contents),
style="A.TButton")
button6.grid(ipadx=btnipx, ipady=btnipy,
padx=btnpx, pady=btnpy,
row=8, column=3,
sticky="nsew")
###################################################
# LABEL FRAMES
#######################
# DEFAULT FRAME
group_default = ttk.LabelFrame(self, text="DEFAULT")
label_default = ttk.Label(group_default, text="The selected program will execute here.\n\ntest", font=LARGE_FONT)
label_default.grid(padx=30, pady=30, row=0, column=0, sticky="nsew")
# LABEL FRAMES MANAGER
group_s = None
def lfm(group):
if group != group:
group_s = group.grid(row=0, column=1, sticky="nsew")
return group_s
else:
group_s = group_default.grid(row=0, column=1, sticky="nsew")
return group_s
# THIS IS MY SAMPLE CALL TO AUTOMATICALLY SET IT TO DEFAULT
lfm(group_default).grid(row=0, column=1, sticky="nsew")
我试着取出从每个if/else块,和许多其他的事情了“回归”,但功能不会返回labelframe,它返回Nonetype。
以下是错误:
File "C:/Users/user/PycharmProjects/testGUI/gui1_0tst.py", line 1171, in __init__
lfm(group_default).grid(row=0, column=1, sticky="nsew")
AttributeError: 'NoneType' object has no attribute 'grid'
我们不需要“完整的代码”,我们需要最少量的实际运行的代码,这会复制问题。编写一个只有足够代码来解决问题的新程序。通常,您试图编写该程序的行为将使您能够自己发现错误。请参阅http://stackoverflow.com/help/mcve –