【发布时间】:2016-01-21 12:43:08
【问题描述】:
这是原始代码的一部分。我没有收到任何错误消息,但当我打开日历框架时似乎没有显示任何内容。我让 submit(self) 函数在 python 中打印出 Control.counter 的值,当它被调用时,当 Control.counter 值大于 0 时没有任何显示。
class Setup_Info(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent, background="white")
scrollbar = tk.Scrollbar(self)
scrollbar.pack(side='right', fill='y')
title2 = tk.Label(self, text="Setup Information", font=LARGE_FONT, background="white")
title2.place(relx=0.25, y=0.00, relheight=0.2, relwidth=0.5)
self.number = tk.Entry(self)
self.number.place(relx=0.2, y=140, relheight=0.05)
question1 = tk.Label(self, text="Name of medication:", font=FONT, background="white")
question1.place(relx=0.2, y=200, relheight=0.05)
self.entry1 = tk.Entry(self)
self.entry1.place(relx=0.2, y=240, relheight=0.05, relwidth=0.2)
question2 = tk.Label(self, text="When it was prescribed:", font=FONT, background="white")
question2.place(relx=0.2, y=300, relheight=0.05)
self.entry2 = tk.Entry(self)
self.entry2.place(relx=0.2, y=340, relheight=0.05, relwidth=0.2)
question3 = tk.Label(self, text="When you stop the medication:", font=FONT, background="white")
question3.place(relx=0.2, y=400, relheight=0.05)
self.entry3 = tk.Entry(self)
self.entry3.place(relx=0.2, y=440, relheight=0.05, relwidth=0.2)
question4 = tk.Label(self, text="How many times in a day do you take it:", font=FONT, background="white")
question4.place(relx=0.2, y=500, relheight=0.05)
self.entry4 = ttk.Combobox(self)
self.entry4.config(values = ('1','2','3'))
self.entry4.place(relx=0.45, y=540, relheight=0.05, relwidth=0.2)
enter = tk.Button(self, text="Enter", font=LARGE_FONT, background="white",
command=self.submit)
enter.place(relx=0.45, rely=0.2, relheight=0.05, relwidth=0.2)
enter2 = tk.Button(self, text="Enter", font=LARGE_FONT, background="white",
command=lambda: controller.show_frame(Calendar))
enter2.pack()
Setup_Info.list1=[]
Setup_Info.list2=[]
Setup_Info.list3=[]
Setup_Info.list4=[]
def submit(self):
print(self.number.get())
Control.counter += int(self.number.get())
print(Control.counter)
entry1=self.entry1.get()
entry2=self.entry2.get()
entry3=self.entry3.get()
entry4=self.entry4.get()
Setup_Info.list1.append(entry1)
Setup_Info.list2.append(entry2)
Setup_Info.list3.append(entry3)
Setup_Info.list4.append(entry4)
print(Setup_Info.list1)
print(Setup_Info.list2)
print(Setup_Info.list3)
print(Setup_Info.list4)
class Calendar(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self, parent, background="white")
if Control.counter > 0:
display_info()
def display_info():
for x in range(Control.counter):
self.medicine1 = tk.Label(self, text=(Setup_Info.list1[x]), font=LARGE_FONT, bg="white")
self.medicine1.pack()
self.medicine2 = tk.Label(self, text=(Setup_Info.list2[x]), font=LARGE_FONT, bg="white")
self.medicine1.pack()
【问题讨论】:
-
您是否进行了任何调试以查看问题是日历框架未显示,还是框架显示但内部小部件未显示?看起来问题可能出在
show_frame函数中,但您没有显示该代码。
标签: python list for-loop tkinter function