我编写了下面的代码,根据用户的点击来显示某些select选项。因此,如果用户单击第一个单选按钮(值1),只有一个选项将出现,如果他们单击第二个单选按钮(值2),将出现两个等。。。这将一直持续到值10(他们将有10个选项)。你知道吗
class MedTimes:
def __init__(self, master):
self.fr = LabelFrame(master, text = "Time to take Medication")
self.fr.grid(row = 6, column = 0, columnspan = 4, padx=8,pady=8, sticky='we')
Label(self.fr, text = "How many times a day do you need to take your medication?").grid(row = 0, column = 0, sticky = 'e', columnspan = 3)
self.y = IntVar ()
self.y.set(1)
Radiobutton(self.fr,text = "Once", fg = "dark green", variable = self.y, value = 1, padx = 20, command = self.timings).grid(row = 1, column = 1, sticky = 'w')
Radiobutton(self.fr,text = "Twice", fg = "dark green", variable = self.y, value = 2, padx = 20, command = self.timings).grid(row = 2, column = 1, sticky = 'w')
Radiobutton(self.fr,text = "Three times", fg = "dark green", variable = self.y, value = 3, padx = 20, command = self.timings).grid(row = 3, column = 1, sticky = 'w')
Radiobutton(self.fr,text = "Four times", fg = "dark green", variable = self.y, value = 4, padx = 20, command = self.timings).grid(row = 4, column = 1, sticky = 'w')
Radiobutton(self.fr,text = "Five times", fg = "dark green", variable = self.y, value = 5, padx = 20, command = self.timings).grid(row = 5, column = 1, sticky = 'w')
Radiobutton(self.fr,text = "Six times", fg = "dark green", variable = self.y, value = 6, padx = 20, command = self.timings).grid(row = 1, column = 2, sticky = 'w')
Radiobutton(self.fr,text = "Seven times", fg = "dark green", variable = self.y, value = 7, padx = 20, command = self.timings).grid(row = 2, column = 2, sticky = 'w')
Radiobutton(self.fr,text = "Eight times", fg = "dark green", variable = self.y, value = 8, padx = 20, command = self.timings).grid(row = 3, column = 2, sticky = 'w')
Radiobutton(self.fr,text = "Nine times", fg = "dark green", variable = self.y, value = 9, padx =20, command = self.timings).grid(row = 4, column = 2, sticky = 'w')
Radiobutton(self.fr,text = "Ten times", fg = "dark green", variable = self.y, value = 10, padx =20, command = self.timings ).grid(row = 5, column = 2, sticky = 'w')
def timings(self):
currentValue = self.y.get()
#creating an array to hold the values oh hour and then minute (at a 5 min interval
timelistHour = ["00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"]
timelistMinute = ["00", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55"]
if currentValue == 1:
timeHourOne = StringVar()
timeHourOne.set(timelistHour[0])
timeMinOne = StringVar()
timeMinOne.set(timelistMinute[0])
Label(self.fr, text = "Hour/Min :").grid(row = 6, column = 1, sticky = 'w')
OptionMenu(self.fr, timeHourOne, *timelistHour).grid(row = 6, column = 1, sticky = 'e')
Label(self.fr, text = "Minute :").grid(row = 6, column = 2, sticky = 'w')
OptionMenu(self.fr, timeMinOne, *timelistMinute).grid(row = 6, column = 2, sticky = 'w')
elif currentValue == 2:
timeHourTwo = StringVar()
timeHourTwo.set(timelistHour[0])
timeMinTwo = StringVar()
timeMinTwo.set(timelistMinute[0])
Label(self.fr, text = "Hour :").grid(row = 6, column = 0, sticky = 'e')
OptionMenu(self.fr, timeHourTwo, *timelistHour).grid(row = 6, column = 1, sticky = 'w')
Label(self.fr, text = "Minute :").grid(row = 6, column = 1, sticky = 'e')
OptionMenu(self.fr, timeMinTwo, *timelistMinute).grid(row = 6, column = 2, sticky = 'w')
Label(self.fr, text = "Hour :").grid(row = 7, column = 0, sticky = 'e')
OptionMenu(self.fr, timeHourTwo, *timelistHour).grid(row = 7, column = 1, sticky = 'w')
Label(self.fr, text = "Minute :").grid(row = 7, column = 1, sticky = 'e')
OptionMenu(self.fr, timeMinTwo, *timelistMinute).grid(row = 7, column = 2, sticky = 'w')
elif currentValue == 3:
timeHourThree = StringVar()
timeHourThree.set(timelistHour[0])
timeMinThree = StringVar()
timeMinThree.set(timelistMinute[0])
Label(self.fr, text = "Hour :").grid(row = 6, column = 0, sticky = 'e')
OptionMenu(self.fr, timeHourThree, *timelistHour).grid(row = 6, column = 1, sticky = 'w')
Label(self.fr, text = "Minute :").grid(row = 6, column = 1, sticky = 'e')
OptionMenu(self.fr, timeMinThree, *timelistMinute).grid(row = 6, column = 2, sticky = 'w')
Label(self.fr, text = "Hour :").grid(row = 7, column = 0, sticky = 'e')
OptionMenu(self.fr, timeHourThree, *timelistHour).grid(row = 7, column = 1, sticky = 'w')
Label(self.fr, text = "Minute :").grid(row = 7, column = 1, sticky = 'e')
OptionMenu(self.fr, timeMinThree, *timelistMinute).grid (row = 7, column = 2, sticky = 'w')
Label(self.fr, text = "Hour :").grid(row = 8, column = 0, sticky = 'e')
OptionMenu(self.fr, timeHourThree, *timelistHour).grid(row = 8, column = 1, sticky = 'w')
Label(self.fr, text = "Minute :").grid(row = 8, column = 1, sticky = 'e')
OptionMenu(self.fr, timeMinThree, *timelistMinute).grid(row = 8, column = 2, sticky = 'w')
elif currentValue == 4:
timeHourFour = StringVar()
timeHourFour.set(timelistHour[0])
timeMinFour = StringVar()
timeMinFour.set(timelistMinute[0])
Label(self.fr, text = "Hour :").grid(row = 6, column = 0, sticky = 'e')
OptionMenu(self.fr, timeHourFour, *timelistHour).grid(row = 6, column = 1, sticky = 'w')
Label(self.fr, text = "Minute :").grid(row = 6, column = 1, sticky = 'e')
OptionMenu(self.fr, timeMinFour, *timelistMinute).grid(row = 6, column = 2, sticky = 'w')
Label(self.fr, text = "Hour :").grid(row = 7, column = 0, sticky = 'e')
OptionMenu(self.fr, timeHourFour, *timelistHour).grid(row = 7, column = 1, sticky = 'w')
Label(self.fr, text = "Minute :").grid(row = 7, column = 1, sticky = 'e')
OptionMenu(self.fr, timeMinFour, *timelistMinute).grid(row = 7, column = 2, sticky = 'w')
Label(self.fr, text = "Hour :").grid(row = 8, column = 0, sticky = 'e')
OptionMenu(self.fr, timeHourFour, *timelistHour).grid(row = 8, column = 1, sticky = 'w')
Label(self.fr, text = "Minute :").grid(row = 8, column = 1, sticky = 'e')
OptionMenu(self.fr, timeMinFour, *timelistMinute).grid(row = 8, column = 2, sticky = 'w')
Label(self.fr, text = "Hour :").grid(row = 9, column = 0, sticky = 'e')
OptionMenu(self.fr, timeHourFour, *timelistHour).grid(row = 9, column = 1, sticky = 'w')
Label(self.fr, text = "Minute :").grid(row = 9, column = 1, sticky = 'e')
OptionMenu(self.fr, timeMinFour, *timelistMinute).grid(row = 9, column = 2, sticky = 'w')
如您所见,我为此编写了一个if语句(带有9个elif语句-在上面的代码中,我只发布了第四个值,但它会重复到10)。我意识到我可以通过编写for循环来缩短代码。然而,我被困在如何写这个循环。你知道吗
如果有人能给我指点,那就太棒了!短暂性脑缺血发作
下面是一个在
timings
函数中可能执行的操作的小示例:它并不完美,因为我无法测试它,而且标签也不会按你的分类(从大到小),但也许它能激励你。希望有帮助!你知道吗
基于此:
相关问题 更多 >
编程相关推荐