Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะทำให้ข้อความเฉพาะไม่สามารถลบใน tkinter ได้อย่างไร?


ใน Tkinter ผู้ใช้สามารถป้อนข้อความโดยใช้วิดเจ็ตป้อนข้อความพื้นฐานสองวิดเจ็ต ได้แก่ ข้อความ วิดเจ็ตและ รายการ วิดเจ็ต ข้อความ วิดเจ็ตมักใช้เพื่อยอมรับการป้อนข้อมูลของผู้ใช้หลายบรรทัด ในขณะที่ รายการ Widget ผู้ใช้สามารถพิมพ์ได้เฉพาะข้อความบรรทัดเดียว

คุณสามารถปรับแต่งวิดเจ็ตเหล่านี้และเพิ่มฟังก์ชันการทำงานเพิ่มเติมได้โดยใช้ฟังก์ชันและเมธอดของไลบรารีในตัว เพื่อตรวจสอบการป้อนข้อมูลใน รายการ วิดเจ็ต คุณสามารถใช้ register() กระบวนการ. เมธอดนี้ส่งคืนสตริงที่สามารถใช้เพื่อเรียกใช้ฟังก์ชันในระยะหลังได้

เพื่อตรวจสอบการป้อนข้อมูลใน รายการ วิดเจ็ต ใช้ config(**options) เมธอดและส่ง ตรวจสอบ และ ตรวจสอบคำสั่ง ข้อโต้แย้ง

  • ตรวจสอบ − หมายความว่าเมื่อใดที่ต้องเรียกใช้ฟังก์ชันเรียกกลับเพื่อตรวจสอบความถูกต้องของอินพุตในวิดเจ็ตรายการหรือข้อความที่กำหนด ตัวอย่างเช่น "คีย์" เป็นค่าที่ระบุว่าเมื่อใดก็ตามที่ผู้ใช้กดปุ่ม คีย์ (จากแป้นพิมพ์) ฟังก์ชันโทรกลับจะถูกเรียก คุณยังสามารถใช้ตัวเลือกอื่นๆ ได้เช่นกัน เช่น โฟกัส โฟกัส โฟกัส ไม่มี ทั้งหมด เป็นต้น

  • ตรวจสอบคำสั่ง − ระบุค่าที่ขึ้นอยู่กับค่าที่ส่งคืนโดยฟังก์ชันเรียกกลับ เมื่อต้องการระบุค่าใน validatecommand='f' คุณสามารถใช้โค้ดทดแทนการโทรกลับต่างๆ ที่บอกว่าฟังก์ชันเรียกกลับคืนค่าอย่างไรและค่าใด

ในการตรวจสอบอินพุตในวิดเจ็ต Entry คุณต้องลงทะเบียนฟังก์ชันการโทรกลับและกำหนดค่าวิดเจ็ต Entry โดยส่งอาร์กิวเมนต์ที่ตรวจสอบเงื่อนไขที่กำหนดไว้ในฟังก์ชันเรียกกลับ

ตัวอย่าง

ให้เราพิจารณาตัวอย่างที่เราต้องการตรวจสอบวิดเจ็ตรายการเพื่อให้ผู้ใช้ไม่สามารถลบข้อความเฉพาะได้ นอกจากนี้ เราสามารถทำให้มันไม่สามารถถอดออกได้โดยการตรวจสอบสตริงด้วย startswith("string") ฟังก์ชัน

# นำเข้าไลบรารีที่ต้องการจากการนำเข้า tkinter *# สร้างอินสแตนซ์ของ tkinter windowwin =Tk()win.geometry("700x350")# กำหนดฟังก์ชันเพื่อสร้างข้อความ non-removabledef make_non_removable(text):return text.startswith( "ป้อนรหัสอีเมลของคุณ:")# สร้างรายการ widgetentry=Entry(win, bg="black", fg="white")entry.pack(side="top", fill="x")# เพิ่มค่าเริ่มต้น textentry.insert(END, "ป้อนรหัสอีเมลของคุณ:")validate_entry=(win.register(make_non_removable), '%P')entry.config(validate='key', validatecommand=validate_entry)win.mainloop() 

ผลลัพธ์

ในการดำเนินการ จะแสดงวิดเจ็ตรายการในหน้าต่างที่มีข้อความเริ่มต้นที่ไม่สามารถถอดออกได้ "ป้อนรหัสอีเมลของคุณ:"

จะทำให้ข้อความเฉพาะไม่สามารถลบใน tkinter ได้อย่างไร?