Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Tkinter在python中的不同时间显示不同组的单选按钮?_Python_Python 2.7_Tkinter_Radio Button - Fatal编程技术网

如何使用Tkinter在python中的不同时间显示不同组的单选按钮?

如何使用Tkinter在python中的不同时间显示不同组的单选按钮?,python,python-2.7,tkinter,radio-button,Python,Python 2.7,Tkinter,Radio Button,根据计数的大小,如何使我的按钮在不同时间显示?我想要的是,当单击第一组按钮时,它会显示一组不同的按钮,然后单击这些按钮后,会弹出第三组按钮。Python没有单选按钮;你在用图书馆吗?如果有,哪个?Tkinter有单选按钮是的,对不起,我用的是Tkinter。你能说得更具体些吗?您是想让用户选择时间[12:00 am/pm],还是想让Tkinter在用户选择hr,然后分钟帧打开,然后是am/pm时刷新新帧/画布。你可以使用下拉菜单来处理这个问题。我正在尝试在用户选择小时、分钟和am/pm时刷新CA

根据计数的大小,如何使我的按钮在不同时间显示?我想要的是,当单击第一组按钮时,它会显示一组不同的按钮,然后单击这些按钮后,会弹出第三组按钮。

Python没有单选按钮;你在用图书馆吗?如果有,哪个?Tkinter有单选按钮是的,对不起,我用的是Tkinter。你能说得更具体些吗?您是想让用户选择时间[12:00 am/pm],还是想让Tkinter在用户选择hr,然后分钟帧打开,然后是am/pm时刷新新帧/画布。你可以使用下拉菜单来处理这个问题。我正在尝试在用户选择小时、分钟和am/pm时刷新CANA。通常每小时有12个按钮(每小时一个),每分钟有60个按钮,然后上午/下午有2个按钮,但在这个例子中我把它缩短了。对不起,你能解释一下为什么selectedHour()方法需要“count”变量吗?对不起,我对这个很陌生。为什么它不像我那样工作?使用count+=1可根据当前的计数更改显示的按钮,您可以使用count递增1的selectedHour()函数,但不向其传递count参数。您可以使用count递增1的selectedHour()函数,但不向其传递count参数。Python逐行运行,因此您以前使用的if语句将只运行一次,返回是不可能的,这就是函数的作用所在,它们有助于您在执行多次操作时不必重复自己的操作。您还可以使用while循环
while(count>=1)
,并将if语句放在该循环中,但您需要一个停止条件,以便while循环停止运行。
from Tkinter import *
import time
import webbrowser
import random
import Tkinter    
"""Sets the time from the buttons into a list"""
def selectedHour():
    x = hour.get()
    if not wake_time:
        wake_time.append(x)
    else:
        wake_time[0] = x
    print wake_time
    count += 1

def selectedMinute():
    x = minute.get()
    if len(wake_time) == 1:
        wake_time.append(x)
    else:
        wake_time[1] = x
    print wake_time
    count += 1

def selectedPeriod():
    x = period.get()
    if len(wake_time) == 2:
        wake_time.append(x)
    else:
        wake_time[2] = x
    print wake_time
    count += 1

wake_time = []

"""Creates Buttons"""
hour = IntVar()
minute = IntVar()
period = StringVar()
hour.set(None)
minute.set(None)
period.set(None)

count = 1

if count == 1:
    radio12 = Radiobutton(app, text = 12, value = 12, variable = hour, command = selectedHour).pack()
elif count == 2:
    radio2 = Radiobutton(app, text = 0, value = 0, variable = minute, command = selectedMinute).pack()
else:
    radio3 = Radiobutton(app, text = 'am', value = 'am', variable = period, command = selectedPeriod).pack()

app.mainloop()
#!/usr/bin/python
import Tkinter
from Tkinter import *
"""Sets the time from the buttons into a list"""
def selectedHour(count):
    x = hour.get()
    if not wake_time:
        wake_time.append(x)
    else:
        wake_time[0] = x
    print wake_time
    count += 1
    frame2.tkraise() # brings frame to front

def selectedMinute(count):
    x = minute.get()
    if len(wake_time) == 1:
        wake_time.append(x)
    else:
        wake_time[1] = x
    print wake_time
    count += 1
    frame3.tkraise() # brings frame to front

def selectedPeriod(count):
    x = period.get()
    if len(wake_time) == 2:
        wake_time.append(x)
    else:
        wake_time[2] = x
    print wake_time
    count += 1
    frame4.tkraise() # brings frame to front

wake_time = []


"""Creates Buttons"""
app = Tk()

hour = IntVar()
minute = IntVar()
period = StringVar()
hour.set(None)
minute.set(None)
period.set(None)
frame1 = Frame(app)
frame2 = Frame(app)
frame3 = Frame(app)
frame4 = Frame(app)
for frame in (frame1, frame2, frame3, frame4):
    frame.grid(row=0,column=0, sticky='news') #set frame layout

count = 1


 # initial value


HOUR = [1,2,3,4,5,6,7,8,9,10,11,12]
MINUTE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59]
PERIOD = ['AM','PM']

group1 = LabelFrame(frame1, text="Hour", padx=5, pady=5) #Hour Label
group1.pack(padx=10, pady=10)

HRoption = OptionMenu(group1, hour, *HOUR, command = lambda x:selectedHour(count)) #dropdown menu for hours
HRoption.pack()

group2 = LabelFrame(frame2, text="Minute", padx=5, pady=5) #label for minutes
group2.pack(padx=10, pady=10)

MINOption = OptionMenu(group2, minute, *MINUTE, command = lambda x:selectedMinute(count)) #dropdown menu for minutes
MINOption.pack()

group3 = LabelFrame(frame3, text="Period", padx=5, pady=5)
group3.pack(padx=10, pady=10) #label for period

MINOption = OptionMenu(group3, period, *PERIOD, command = lambda x:selectedPeriod(count)) #dropdown menu for period
MINOption.pack()
frame1.tkraise() #start the first frame
app.mainloop()