Computer >> Máy Tính >  >> Lập trình >> Python

Làm thế nào để làm cho văn bản cụ thể không thể di chuyển được trong tkinter?

Trong Tkinter, người dùng có thể nhập văn bản bằng hai tiện ích nhập văn bản cơ bản - Văn bản tiện ích con và Mục nhập tiện ích con. Văn bản tiện ích con thường được sử dụng để chấp nhận đầu vào của người dùng nhiều dòng, trong khi trong một Mục nhập tiện ích con, người dùng chỉ có thể nhập văn bản đường đơn.

Bạn có thể tùy chỉnh các tiện ích con này và thêm chức năng bổ sung bằng cách sử dụng các hàm và phương pháp thư viện tích hợp sẵn. Để xác thực thông tin đầu vào trong một Mục nhập tiện ích con, bạn có thể sử dụng register () phương pháp. Phương thức này trả về một chuỗi có thể được sử dụng để gọi hàm ở các giai đoạn sau.

Để xác thực thông tin đầu vào trong một Mục nhập tiện ích con, sử dụng cấu hình (** tùy chọn) và vượt qua xác thực câu lệnh xác thực đối số.

  • xác thực - Nó biểu thị khi hàm gọi lại phải được gọi để xác thực đầu vào trong tiện ích Mục nhập hoặc Văn bản nhất định. Ví dụ: "key" là giá trị chỉ định rằng bất cứ khi nào người dùng nhấn phím (từ bàn phím), hàm gọi lại sẽ được gọi. Bạn cũng có thể sử dụng các tùy chọn khác, chẳng hạn như tiêu điểm, tiêu điểm, tiêu điểm, không có, tất cả, vv

  • câu lệnh xác thực - Nó chỉ định giá trị phụ thuộc vào giá trị được trả về bởi hàm gọi lại. Để chỉ định giá trị trong validatecommand ='f' , bạn có thể sử dụng nhiều mã thay thế Gọi lại cho biết cách thức và giá trị nào được các hàm gọi lại trả về.

Để xác thực đầu vào trong tiện ích con Entry, bạn phải đăng ký hàm gọi lại và định cấu hình tiện ích con Entry bằng cách chuyển các đối số kiểm tra điều kiện được xác định trong hàm gọi lại.

Ví dụ

Bây giờ chúng ta hãy xem xét một ví dụ mà chúng ta muốn xác thực một widget Entry sao cho người dùng không thể xóa một văn bản cụ thể. Ngoài ra, chúng tôi có thể làm cho nó không thể tháo rời bằng cách kiểm tra chuỗi bằng startwith ("string") chức năng.

 # Nhập các thư viện bắt buộc từ nhập tkinter * # Tạo một phiên bản của tkinter windowwin =Tk () win.geometry ("700x350") # Xác định một hàm để tạo một văn bản không phải là dòng chữ ( "Nhập Id Email của bạn:") # Tạo một mục nhập widgetentry =Entry (win, bg ="black", fg ="white") entry.pack (side ="top", fill ="x") # Thêm mặc định textentry.insert (END, "Nhập Id Email của bạn:") validate_entry =(win.register (make_non_removable), '% P') entry.config (validate ='key', validatecommand =validate_entry) win.mainloop ()  

Đầu ra

Khi thực thi, nó sẽ hiển thị tiện ích Mục nhập trong cửa sổ với văn bản mặc định không thể thay đổi "Nhập Id Email của bạn:".

Làm thế nào để làm cho văn bản cụ thể không thể di chuyển được trong tkinter?