如何在Tkinter中使特定文字不可刪除?
在Tkinter中,使用者可以使用兩種基本的文字輸入部件輸入文字——**Text**部件和**Entry**部件。**Text**部件通常用於接受多行使用者輸入,而在**Entry**部件中,使用者只能輸入單行文字。
您可以使用內建庫函式和方法自定義這些部件並新增附加功能。要驗證**Entry**部件中的輸入,可以使用**register()**方法。此方法返回一個字串,該字串可用於在以後的階段呼叫該函式。
要驗證**Entry**部件中的輸入,請使用**config(**options)**方法並傳遞**validate**和**validatecommand**引數。
**validate**——它表示何時必須呼叫回撥函式來驗證給定Entry或Text部件中的輸入。例如,**"key"**的值指定每當使用者按下**鍵**(來自鍵盤)時,回撥函式將被呼叫。您也可以使用其他選項,例如**focus、focusin、focusout、none、all**等。
**validatecommand**——它指定的值取決於回撥函式返回的值。要在**validatecommand='f'**中指定值,您可以使用各種回撥替換程式碼,這些程式碼說明回撥函式如何以及返回什麼值。
要驗證Entry部件中的輸入,您必須註冊回撥函式,並透過傳遞檢查回撥函式中定義的條件的引數來配置Entry部件。
示例
現在讓我們考慮一個示例,在這個示例中,我們想要驗證一個Entry部件,以便使用者無法刪除特定文字。此外,我們可以透過使用**startswith("string")**函式檢查字串來使其不可刪除。
# Import required libraries
from tkinter import *
# Create an instance of tkinter window
win = Tk()
win.geometry("700x350")
# Define a function to make a text non-removable
def make_non_removable(text):
return text.startswith("Enter your Email Id:")
# Create an entry widget
entry=Entry(win, bg="black", fg="white")
entry.pack(side="top", fill="x")
# Add a default text
entry.insert(END, "Enter your Email Id:")
validate_entry=(win.register(make_non_removable), '%P')
entry.config(validate='key', validatecommand=validate_entry)
win.mainloop()
輸出
執行後,它將在視窗中顯示一個Entry部件,其中包含不可刪除的預設文字“請輸入您的郵箱ID:”。

廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP