به نام خدا
سلام بر همه ی عزیزان ، این پست یه شیرینی از طرف بنده است((خودتون میدونید چراD: )) و میخوایم یدونه ویجت باحالی رو با هم دیگه یاد بگیریم، اسم این ویجت خاص، لیست باکس است ): خب حالا دوستان، اگر نمیدونید این ویجت دقیقا چیه، عکسش رو ببینید :
به این میگن لیست باکس، میتونیم یه گزینه رو از بین لیست انتخاب کنیم((میتونید کاری کنید که چند تا گزینه رو هم با هم انتخاب کنند)) و خلاصه خیلی به کارمون میاد، میدونم الان یسری مفاهیم رو یادتون نیست چون درباره tkinter خیلی وقته پست نزاشتیم، کافیه فقط برید یه مرور ساده بکنید و دوباره بر گردید، خب امیدوارم .pack و... اینا رو یادتون باشه (: این اول الگوریتم همیشگی مون که مال پنجره مونه :
from tkinter import *
vrs32 = Tk()
بعدش میخوایم لیست باکس نمایش بدیم، برای اینکار کافیه از تابع Listbox استفاده کنیم و ارگومانش رو اسم پنجره تون بدین (: که میشه این شکلی :
lb = Listbox(win)
به همین راحتی (: خب شاید بگید پس .pack() کجاست؟ خب مشخصه! تابع config رو که یادتون هست! باید در خط بعد اونو پک کنیم میشه اینجوری :
lb = Listbox(win)
lb.pack()
به همین راحتی!!! خب میخوایم بریم یک سری گزینه رو روش اعمال کنیم! باید از تابع insert استفاده کنیم که دو ارگومان میگیره ازمون ، اولی اون قسمتی هست که میخواید گزینه نمایش داده بشه از بالا به پایین به صورتی که اولین گزینه که من تو عکس گزاشتم ویروس 32 هست که گزینه 0 هست و بلک هت گزینه اول و اتک 2 و... پس دیگه فهمیدید اینجای کار رو، ارگومان دومم متن گزینه اتون هست (: خب اینجوری شد پس :
lb.insert(0 , "Soltan Virus Shir Khareshe")
lb.insert(1 , "Attrib Shirini Nemide")
به همین راحتی ما گزینه هامون رو ساختیم و میتونیم انتخابشون کنیم×!!! خب بریم سراغ اینکه بفهمیم کاربر چه گزینه ای رو انتخاب کرده ، باید از تابع طولانی curselection استفاده و درون یک متغیر بریزیم :
gozine = lb.curselection()
به همین راحتی! خیلی سختی راه ندید به خودتون یه تب بزنید بقیه اش میره، خب اگر پرینت کنید میبینید به ما شکل دیکشنری داده !!! یعنی عدد ساده نداده! خب شما میتونید با تبدیل کردن به لیست ، با گزاشتن متغیر درون حلقه و با کمی رشته بازی های دیگه اون مقدار رو بدست بیارید، خب میخوایم که لیستمون رو طوری تنظیم کنیم که بشه چندین گزینه انتخاب کرد، کاری نداره که(: یه متغیری تو تابع لیست باکس به اسم selectmode وجود داره که با تغییرش این کار رو انجام میدیم، اگر میخواید هم میتونید همون اول تو تابع بزارید و یا مثل من تو تابع config ازش استفاده کنیم و مقدارش رو multiple قرار بدید :
lb.config(selectmode="multiple")
به همین راحتی! خب میریم از لیست باکس ها بیرون! درسته درس امروز لیست باکس بود، ولی خب گفتم یسری درس دیگه هم بدیم! خب، چند روز پیش داشتم درباره واناکرای تحقیق میکردم، دیدم وقتی که اون فرم و پنجره اش میاد بالا و دکمه close رو میزنی دوباره پنجره رو باز میکنه!! خب اینجا میخوام یه کاری کنیم که وقتی دکمه خروج زده شد یه تابعی رو اجرا کنه، این تابع منه:
def tabeman():
pass
اینجا دستور دادم هیچ کاری نکنه یعنی دکمه زده شد عمل نکنه! خب حالا با تابع protocol میخوایم که این کار رو عملی کنیم، این تابع باید با اسم پنجره صدا زده شه :
vrs32.protocol("WM_DELETE_WINDOW", tabeman)
به همین راحتی! اسم پنجره هم که قطعا vrs32 بود.
با تشکر از تمامی عزیزان، اینم شیرینی بود دیگه D:
Virus32
نویسنده: Attrib 32
سلام
خیلی باحال بود
مخصوصا اون تابع پروتکل
مرسی اتریب (;