เป็นแอปพลิเคชันที่ถามปัญหาทางคณิตศาสตร์และผู้ใช้ป้อนคำตอบในกล่องข้อความเป็นจำนวนเต็ม และปุ่ม submitbtn
จะตรวจสอบว่าถูกหรือผิด ฉันผูกแป้นคีย์บอร์ด f
เข้ากับฟังก์ชันที่ทำงานด้วยการกดปุ่ม submitbtn
ซึ่งใช้งานได้ดี แต่แป้น f
จะถูกเพิ่มลงในกล่องข้อความหลังจากคำตอบของผู้ใช้ก่อนที่จะส่งและให้มันเป็นคำตอบที่ผิด
กล่องข้อความ
text_Input = StringVar
txtbox = Entry(font=('arial',20, BOLD), textvariable=text_Input)
txtbox.grid(columnspan = 2, row = 3, pady = 20)
txtbox.focus_set()
ปุ่มส่ง
submitbtn = Button(text="Submit", padx=10, pady=10, command=lambda:submit(txtbox.get(), y))
ส่งฟังก์ชั่น
def submit(z, y):
global correct_answer, wrong_answer, submitbtn
y=str(y)
if z==y:
correct_answer+=1
lbl2.configure(text=correct_answer)
else:
wrong_answer+=1
lbl4.configure(text=wrong_answer)
submitbtn.config(state="disabled")
ผูกพัน
game.bind('f', lambda event: submit(txtbox.get(), y))
#"game" is the name of Tk()
#submit is the function linked to submitbtn
#This works well if I bind it to <Return> (Enter Key)
ผลลัพธ์ที่แท้จริง:
5+8
ผู้ใช้ป้อน: 13
กด 'f' เพื่อส่งคำตอบ
ประมวลผลคำตอบแล้ว: 13f
มีวิธีประมวลผลอินพุตกล่องข้อความแบบเรียลไทม์เพื่อให้แน่ใจว่าอักขระทุกตัวที่ป้อนเป็นจำนวนเต็มหรือไม่ หากผู้ใช้ป้อนข้อมูลใดๆ ยกเว้น 0-9 ฉันต้องการให้ผู้ใช้ไม่ต้องจดบันทึกสิ่งใดในกล่องข้อความ
นอกจากนี้ ฉันปิดการใช้งาน
submitbtn
หลังจากกดหนึ่งครั้ง แต่การกด f ซ้ำๆ จะทำให้ตัวแปรcorrect_answer
เพิ่มขึ้นเรื่อยๆ มีวิธีผูกคีย์เข้ากับsubmitbtn
ซึ่งจะเรียกใช้ฟังก์ชันsubmit
แทนที่จะเชื่อมโยงคีย์f
กับฟังก์ชันsubmit
โดยตรงหรือไม่
Entry
วิดเจ็ตหรือText
วิดเจ็ต? - person Henry Yik   schedule 13.04.2019