سلام دوستان
این قسمت میخوام در مورد entry صحبت کنم  از این ابزار برای ورودی گرفتن استفاده میشه نحوه ی ایجادش هم مثل زیره
entryName = ttk.Entry(root,width= 30)
خب اینم مثل بقیه ابزار هاست و باید بگم که از این ابزار برای ورودی گرفتن اطلاعات استفاده میشه مثلا پسورد و نام و نام خانوادگی و اینها برای دسترسی به متن داخل این ابزر باید از تابع get استفاده کنید توجه کنید برای وارد کردن یک متن به این ابزار از تابع set استفاده نمیشه خب منطقی هم هست چون ما نمیخوایم ایم ابزار رو ست کنیم بلکه میخوایم داخلش یه متن وارد کنیم که با تابع insert انجامش میدیم نحوه ی استفادش رو در زیر میبینیم ولی میخوام اول چند تا تابع توضیح بدم بعد مثال بزنم تابع بعدی برای پاک کردن متن از این ابزار هست که خب منطقیه که اسمش delete باشه خب بریم سراغ مثال


from tkinter import *
from tkinter import ttk
root=Tk()

passwordEntry=ttk.Entry(root, width= 30)
passwordEntry.pack()

passwordEntry.insert(0, 'hello enter your password : ')


def delcallback():
    passwordEntry.delete(12 ,16)
deletebutton = ttk.Button(root,text=' delete',command= delcallback)
deletebutton.pack()

def printcallback():
    print(passwordEntry.get())
printbutton=ttk.Button(root,text= 'print ',command = printcallback)
printbutton.pack()


def delallcallback():
    passwordEntry.delete(0 ,END)
deleteallbutton = ttk.Button(root,text=' delete all',command= delallcallback)
deleteallbutton.pack()


حی اوایلش که نیاز به توضیح نداره فقط توی این خط
passwordEntry=ttk.Entry(root, width= 30)
یک اینتری درست کردم و خاصیت عرضش (width) رو برابر 30 قرار دادم بعد میرسیم به تابع اینسرت که دوتا ورودی داره اولیش جاییه که میخوایم از اونجا شروع کنه رشتمون رو وارد کنه و دومیش هم رشتمونه اینم که سخت نیست خب بریم سراغ بعدی یک تابع تعریف کردم که توی اون تابع از 12 امین عنصر رشته تا 16 امین عنصر رو حذف کردم ( کلمه ی your ) و یک دکمه ایجاد کردم که این تابع رو به اجرا برام در بیاره
و بعد اون یه دکمه ایجاد کردم با یه تابع که رشته ی داخل اینتری رو چاپ کنه و
 در اخر یک کلید تعریف کردم که از اول تا اخر همه رو حذف کنه چون نمیدونیم اخرش کجاست خود tkinter برامون یه انتها تعریف کرده که باید کلمه ی end رو با حروف بزرگ یعنی END بنویسیم یا end رو داخل کوتیشن قرار بدیم یعنی تبدیلش کنیم به رشته و اونوقت باید حروفش کوچیک باشند یعنی اگر توی کد بالا بجای END بنویسید 'end' باز هم فرقی نمیکنه و کدتون اجرا میشه
خب حالا من گفتم از این ابزار برای دریافت رمز هم استفاده میشه شاید شما دوست نداشته باشید رمزتون رو کسی که کنارتونه ببینه یعنی درستشم همینه مثل همه ی سایت ها که وقتی رمز رو میزنی بهت ستاره نشون میدند خب برای این کار باید خصوصیت show رو برابر '*' قرار بدیم یعنی خط زیر رو به کد بالا اضافه کنید و دوباره اجرا کنید و نتیجه رو ببینید
passwordEntry.config(show= '*')


خب حالا که اینها رو یاد گرفتید بهتون در مورد حالت بگم برای حالت از تابع state استفاده میشه شما میتونید حالت های مختلفی رو برای ابزارتون در نظر بگیرید مثلا فکر کنید من میخوام passwordEntry  رو غیر فعال کنم باید این خط رو به کدم اضافه کنم
passwordEntry.state(['disabled'])
خب حالا اگر بخوام فعالش کنم باید از
 !dieabled
استفاده کنم میدونم شاید به نظرتون عجیب بیاد که چرا از کلمه اینابلد استفاده نشده که متضاد دیسابلد هست منم اول نفهمیدم ولی بعدش دیدم این ابزار در حالت عادی فعال هست و ما غیر فعالش میکنیم و حالا میخوایم غیر فعال کردنش رو لغو کنیم و علامت تعجب هم برای متضاد کردن استفاده میشه دیگه پس منطقیه که از
!dieabled
استفاده کنه حالا بعضی وقتا ما میخوایم کاربر بتونه فقط اطلاعات از این ابزار بخونه و نتونه توش چیزی بنویسه یا اطلاعاتش رو تغییر بده در اینجا باید از 'readonly' استفاده کنیم فقط حواستون باشه این دوتا هم مثل غیر فعال کردن کدوشون نوشته میشه مثلا برای رید انلی کردن باید بنویسید
passwordEntry.state(['readonly'])


این قسمت از اموزش هم تموم شد فقط شاید براتون سوال بشه که چرا من هی در مورد منطق انتخاب کلمات صحبت میکنم دلیلش اینه که شما وقتی منطق این ماٍول رو درک کنید راحت میتونید یادش بگیرید