我有一個函數需要一個活動的開始時間和結束時間。我想要一個消息框彈出來告訴他們開始時間是否在結束時間之後開始(例如從18.00開始,但在15.00結束)。我決定用一個消息框告訴他們他們錯了,並將他們推回到函數的開頭。當按下時調用兩個變量的Tkinter按鈕?
我怎樣才能使按鈕,按下時,調用兩個命令。一個回到函數的開始,另一個破壞消息框?
def addtimeslot():
hour1 = variable_st.get()
starttimehour = str(datetime.time(hour1,minute,second))
hour2 = variable_end.get()
endtimehour = str(datetime.time(hour2,minute,second))
if starttimehour >= endtimehour:
print("WRONG")
win = Toplevel()
win.title('invalid input')
message = "You have selected invalid input. Please try again"
Label(win, text = message).pack()
button = Button(win, text = 'ok', command = addtimeslot AND win.destroy).pack
else:
continue code
我知道'AND'不應該在那裏,它只是顯示我想要的。
btn_add_final = ttk.Button(window1, text = "Add timeslot",width = 15, command = addtimeslot)
btn_add_final.place(x =300,y=275)
更新爲顯示調用函數的按鈕。
你可以用拉姆達破解它('命令=拉姆達:[addtimeslot(),win.destroy()')。不要這樣做! – CommonSense
我猜你在後面忘了'()'。另外,如果'button = Button(...)。pack()它將是'None',因爲這是什麼包返回。在第二行做這個包。 – kabanus
@kabanus在換行符上使用'pack()',但是在框架中的按鈕定位不在問題的範圍之內。 – pstatix