به نام خدا
سلام به عزیزان وب امروز تو جلسه پنجم میخوایم رو تکست باکس و ریچ تکست باکس کار کنیم، قسمت هفتم احتمالا قسمت آخر ما خواهد بود و اونجا یه پروژه میدم فقط لطفا سعی کنید خودتون اونو بنویسیدش چون میخوام خودتون دل بکار بدید و سراغ پروژه آماده نرین!
اول میریم سراغ تکست باکس! برای بوجود آورد یک تکست باکس باید از تابعی به اسم Entry استفاده کنیم دقت کنید با E بزرگ هست. و بعد بهش متغیر ها و اپشن هامونو میدیم. خب برای بوجود آوردن تکست باکس بعد از تابع باید اسم پنجره ای که میخوایم تکست باکس درونش ساخته شه رو نام میبریم به شکل زیر
Entry(اسم پنجره).pack()
Entry(virus32).pack()
به همین سادگی یه تکست باکس براتون ساخته میشه! آپشن هایی نظیر فونت و رنگ ها و... رو در پست های قبل گفتیم. خب حالا ما میخوایم وقتی کاربر متنی رو تو تکست باکس نوشت اون رو بدست بیاریم، برای اینکار باید کاری کنیم که متن درون اون در یک متغیر دیگه ریخته شه. اینو اضافه کنم اون متغیری که قراره منم درونش قرار بگیره یک متغیر رشته نیست در اصل یک تابع است از خود کتابخونه و دو نوع رشته و عدد داره که در زیر میبینید
matn = StringVar()
matn2 = IntVar()
کد اول تعریف متغیر رشته است و دومی متغیر عددی! برای هزارمین بار میگم دقت کنید بعضی از حرفاش بزرگه و پایتون به کوچیکی و بزرگی حساسه!!! اما حالا چطور اونو به تکست باکس خودمون ربط بدیم؟ باید از آپشنی در تکست باکسمون استفاده کنیم به اسم textvariable که تو تابع تکست باکسمون به شکل زیر قرار میگیره
Entry(virus32 , textvariable = matn).pack()
اما یه نکته وجود داره! وقتی شما متن رو تو تکست باکس تایپ میکنین، وقتی دستور پرینت متغیر رو بهش میدین به جای متن بهتون کلمه None رو برمیگردونه! خب اشکال کجاست؟؟ اشکالی وجود نداره در اصل شما برای دیدن متن ذخیره شده در متغیر باید از تابع دیگری به اسم get استفاده کنید که طرز کارش اینجوریه که ما اسم متغیر رو میدیم و . میزاریم و تابع get() رو میزاریم! برای بهترین متوجه شدن کد زیر رو ببینید.
print(matn.get())
الان متن رو میبینید!!
خب میخوایم کاری کنیم که ما خودمون متن درونی متغیر رو تایین کنیم! یعنی نمیخوایم متن ذخیره شده تو تکست باکس درون متغیر ما باشه! اما این کار به چه درد میخوره؟؟ دوستان این نکته فوق العاده مهمه اینکه درون اون متغیر ما هر چی بریزیم تو تکست باکس نمایش داده میشه!!! اول روش این کار رو بهتون بگم اینکه باید از تابع set استفاده کرد به شکل زیر
matn.set("متن جایگزین")به همین سادگی! من تو خط قبل گفتم هر چی تو متغیر باشه تو تکست باکس هم نمایش داده میشه! به طور مثال کد زیر رو اجرا کنید متوجه میشید
matn = StringVar()
matn.set("virus32")
Entry(virus32, textvariable = matn).pack()
مثلا تو ساخت ماشین حساب وقتی کاربر یه فرمولی مثل ۲+۲ میزنه شما برای اینکه جواب رو بهش نمایش بدی باید تکست باکس رو پاک کنی و جواب رو بزاری دیگه برای همین باید از این روش بهره برد.
خب میریم سراغ ریچ تکست باکس که خیلی آسونه. باید از تابع Text استفاده کرد و بهش اسم پنجره رو داد، به شکل زیر توجه کنید
rich = Text(اسم پنجره).pack()
به همین سادگی! حالا میخوایم به ریچ تکست باکسمون یه متن اضافه کنیم! باید به شکل زیر با تابع insert عمل کنیم به شکل زیر :
rich.insert("virus32")
اسم متغیر رو میاییم و تابع insert رو فراخوانی میکنیم
تو کانال تلگرام حتما عضو شید و پست ها رو لایک کنید.
سلام اتریب جان
دمت جیز پستات عالیه
میگم لا یه لای این پستات درباره scapy هم چند تا بنویس بی زحمت
موفق باشی :)