رفتن به مطلب



iran rules jazbe modir
ADS mahak

Doctor Robot

Programming-Py python Gui

پست های پیشنهاد شده

Label

عنصر Label را می‌توان برای نمایش متن یا تصویر به کار گرفت. شما می‌توانید متن و تصویر را هر زمان که می‌خواهید، تغییر دهید. همچنین می‌توان بخشی از متن را دارای زیرخط (Underline) کرد و یا متن را در چند خط نمایش داد. نحوه تعریف کردن عنصر دکمه به صورت زیر است:

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

master، بیانگر پنجره والدی است که این دکمه به آن تعلق خواهد داشت و options، تنظیمات پرکاربرد برای دکمه می‌باشند که می‌توانند به صورت زوج‌های کلید/مقدار که با ویرگول از هم جدا می‌شوند، مورد استفاده قرار گیرند. در جدول زیر لیست این تنظیمات آمده است:

290107181_c.thumb.jpg.83a5bca63e8097835e72329c85734c55.jpg1848386176_c.jpg.f275f3e59ac04863355b0c23213f8cce.jpg

به کد زیر توجه کنید:

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

در خط 7 کد بالا یک عنصر Label را ایجاد کرده و خاصیت‌های آن را مقدار دهی کرده‌ایم. همانطور که مشاهده می‌کنید، با خاصیت font می‌توان نوع و اندازه فونت را مشخص کرد. برنامه را اجرا و نتیجه را مشاهده کنید:

1991777334_c.jpg.de8e052658e2266974add7c1bb394a57.jpg

حال خاصیت underline را به صورت صورت زیر به خط 7 اضافه نمایید :

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

با اجرای برنامه کاراکتر W دارای زیر خط می‌شود:

1276354114_c.jpg.69827f0d9636f938e1076e443eb19e7b.jpg

همانطور که گفته شد، خاصیت anchor برای تعیین موقعیت متن در Label به کار می‌رود. عملکرد این خاصیت زمانی آشکار می ورد که خاصیت‌های width ،bg و height هم مشخص شده باشند. خط 7 را به صورت زیر تغییر دهید:

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

با اجرای برنامه، متن داخل Label در قسمت پایین قرار می‌گیرد:
479660832_c.jpg.6ba1dd28642945cab529735046a47a3b.jpg

حرف s مقابل خاصیت anchor، به معنای south یعنی جنوب است. با تغییر مقدار s به مقادیر گفته شده در جدول و سپس اجرای برنامه، نتیجه را مشاهده کنید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

telegram channel   jazbe modir

Entry

عنصر Entry ابتدایی‌ترین وسیله برای ورود اطلاعات در یک فرم ویندوزی می‌باشد. این کار را با تایپ آنها (اطلاعات) در Entry انجام می‌دهید. متنی که شما تایپ می‌کنید، به وسیله متد ()get این عنصر، قابل دسترسی است. این عنصر برای دریافت یک رشته متن تک خطی از کاربر استفاده می‌شود. نحوه ایجاد این عنصر به صورت ساده به شکل زیر است:

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

master، بیانگر پنجره والدی است که این دکمه به آن تعلق خواهد داشت و option، تنظیمات پرکاربرد برای Entry می‌باشند، که می‌توانند به صورت زوج‌های کلید/مقدار که با ویرگول از هم جدا می‌شوند، مورد استفاده قرار گیرند. در جدول زیر لیست این تنظیمات آمده است:

2107748469_c.thumb.jpg.83f0847a5ed4b4de29a0f53d547b3304.jpg1378529339_c.jpg.ac04a9ad8636156f90adb9cf0628a2c8.jpg

توابع پرکاربرد برای این عنصر هم عبارتند از :

888435650_c.thumb.jpg.bb6555a01aa5d614f4dd876b818a182a.jpg757020985_c.jpg.e6074166809b6f53f318085a1713c2fe.jpg

در مثال زیر نحوه استفاده از Entry نشان داده شده است :

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

برنامه از شما می‌خواهد که دو عدد را وارد کنید و با زدن دکمه جمع آنها را با استفاده از یک برچسب (Label) به شما نشان می‌دهد. در خطوط 10-7 کد بالا دو عنصر Entry را بر روی فرم اصلی برنامه و در جلوی هر کدام نیز دو عنصر Label که نشان دهنده هدف آنهاست (Entry ها) قرار داده‌ایم. در خط 11 یک کنترل lable دیگر برای نشان دادن حاصل جمع دو عدد و یک دکمه Button هم برای انجام عملیات ایجاد شده است. در خطوط 19-14، از متد ()grid برای قرار دادن عناصر در سطرها و ستون های مختلف یا به عبارتی برای چیدن عناصر استفاده کرده ایم. نمای کلی برنامه به صورت زیر است:
171334086_c.jpg.4e1b104411625b721d0d11c99ef588f2.jpg

در خطوط 23-21 کد بالا یک تابع به نام ()calculateSum تعریف کرده‌ایم، در بدنه تابع و در خط 22 گفته‌ایم که مقادیر داخل Entry به وسیله تابع ()get گرفته شود، سپس با استفاده از تابع ()int به نوع صحیح تبدیل و در نهایت به وسیله تابع ()sum با هم جمع شوند. در خط 23 هم جمع مقادیر در داخل خاصیت text مربوط به Label نمایش داده شود. به مثالی دیگر توجه کنید:

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

قبل از توضیح کد بالا، ابتدا در مورد یک نوع کلاس در tkinter به شما توضیح می دهیم. در Tkinter انواع خاصی از کلاس‌ها وجود دارند که به control variable معروف هستند و همانند متغیرهای معمولی عمل می‌کنند و می‌توانند مقادیری مانند رشته‌ها و اعداد و … را در خود ذخیره کنند.
یک ویژگی منحصر به فرد این متغیرها است که می‌توانند بین چند عنصر Tkinter به اشتراک گذاشته شوند و وضعیت همه عناصر را به خاطر بسپارند. بدین معنی که اگر فرضاً یک مقدار را در داخل این متغیرها ذخیره کنید، با تغییر این مقدار، تمام عناصری که از این متغیر استفاده می‌کنند، به روز می‌شوند. control variable ها چهار نوع هستند:

  • BooleanVar
  • DoubleVar
  • IntVar
  • Stringvar

همانطور که از نام آنها پیداست، این کلاس‌ها می‌توانند انواع منطقی، اعشاری، صحیح و رشته‌ای را در خود ذخیره کنند. این متغیرها یا کلاس‌ها دارای دو متد به نام‌های ()set و ()get هستند که از اولی برای مقداردهی به آنها و از دومی برای گرفتن مقدار آنها استفاده می‌شود. برای درک بهتر کاربرد این کلاس‌ها و متدهای آنها، به توضیح کد بالا می‌پردازیم. کار کد بالا این است که ما هر چه را که در داخل عنصر Entry می نویسیم، عینا و به طور همزمان در داخل عنصر Label نوشته می شود. اما این کار را چگونه انجام می دهیم.

ابتدا در خط 7 یک نمونه از کلاس StringVar را ایجاد کرده ایم و آن را در خطوط 8 و 9 به خاصیت textvariable دو عنصر Entry و Label اختصاص داده ایم. این کار باعث می شود که وضعیت این دو عنصر به وسیله کلاس StringVar به خاطر سپرده شود و هر تغییر در خاصیت textvariable هر یک از عناصر به دیگری هم اعمال شود. پس تا اینجا ما دو عنصر را به هم متصل کردیم. حال چطور متغیر یا کلاس StringVar را مقدار دهی کنیم تا این مقدار به دو عنصر اعمال شود. اینکار را در خط 14 و با استفاده از متد ()set انجام داده ایم.

در داخل پرانتزها نوشته ایم که مقداری که در داخل عنصر Entry نوشته می شود را با استفاده از متد ()get گرفته و سپس با استفاده از متد ()set در داخل متغیر var قرار بده. این عمل را به صورت یک کنترل کننده رویداد نوشته تا بتوانیم آن را به رویداد <Key> اختصاص دهیم. در کل معنای خطوط 16-13 این است که مقادیری که توسط کاربر به وسیله صفحه کلید و در داخل عنصر Entry تایپ می شود را در داخل متغیر var قرار بده. و چون این متغیر را در خطوط 8 و 9 به خاصیت textvariable اختصاص داده ایم، هر چیزی که در داخل عنصر Entry نوشته می شود، همزمان در داخل عنصر Label هم نوشته می شود. حالا برنامه را اجرا کرده و هر چیزی را که می‌خواهید درون Entry بنویسید. مشاهده می‌کنید که هر چیزی که شما درون Entry می‌نویسید دقیقاً به همان صورت بر روی Label نوشته می‌شود:

1309811758_c.jpg.147f0f023500a8e36ace680addf76162.jpg

اگر Entry شما می‌خواهد یک پسورد را بپذیرد، شما باید مقدار خاصیت show را به چیزی مانند * تغییر دهید (این کاراکتر بسته به سلیقه‌ی شما می‌تواند هر چیزی باشد):

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

وقتی که کاربر یک حرف را وارد کند این کاراکتر (*) به او نمایش داده می‌شود. به شکل زیر دقت کنید:

1030631455_c.jpg.cad69e70aa61b66da2519c9a1c1b31ed.jpg

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Text

عنصر Text قابلیت‌های پیشرفته‌ای را برای ویرایش متن‌های چند خطی و نحوه قالب بندی آنها برای نمایش بر روی صفحه از قبیل تغییر رنگ و فونت آن، فراهم می‌آورد. همچنین در این عنصر می‌توانید از ساختارهای مناسبی از قبیل tab و mark برای تعیین مکان بخش‌های خاصی از متن و اعمال تغییرات به آن محدوده‌ها، استفاده کنید. علاوه بر این می‌توانید پنجره‌ها و تصاویر را درون متن تعبیه کنید. این امکان به خاطر این است که عنصر Text به گونه‌ای طراحی شده که هم متن ساده و هم متن قالب بندی شده را نمایش می‌دهد. نحوه تعریف کردن این عنصر به صورت زیر است:

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

master، بیانگر پنجره والدی است که Text به آن تعلق خواهد داشت و option، تنظیمات پرکاربرد برای Text می‌باشند که می‌توانند به صورت زوج‌های کلید/مقدار که با ویرگول از هم جدا می‌شوند، مورد استفاده قرار گیرند. در جدول زیر لیست این تنظیمات آمده است:

1012223657_C.JPG.4f303b776604deadd4881fd90a775976.JPG

373599694_C.JPG.cc0530ea54a1a474953acf58118f0293.JPG

1719576037_C.JPG.4c27b9213c671bc3366d41792b44c8c8.JPG

1741349152_C.JPG.7a8bbe5ac93013220590a5a4dafb8edb.JPG

عنصر Text دارای توابع زیر است:

1132874593_C.JPG.f75cd8297e3cf2bbfde30988bb6b4007.JPG

عناصر Text از سه ساختار کمکی پشتیبانی می‌کنند: Mark ،Tag ،Index.

Mark ها برای بوک مارک کردن موقعیت میان دو کاراکتر درون متن استفاده می‌شوند. توابع زیر برای کار با مارک‌ها وجود دارند.

1546376971_C.JPG.d49da792bb29a225efc3ce52f17199ba.JPG

Tag ها برای مرتبط نمودن نام‌ها و محدوده‌های متن استفاده می‌شوند. به این وسیله تغییرات تنظیمات بخش‌های خاصی از متن آسان می‌شود. همچنین تگ‌ها برای متصل کردن توابع به رخدادهای بخش خاصی از متن استفاده می‌شوند. در ادامه توابع موجود برای کار با تگ‌ها آورده شده است.

1601797402_C.JPG.66cff610776ce05c372f92915ef8259d.JPG

به مثال زیر توجه کنید:

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

خروجی کد بالا به صورت زیر است:
267188941_C.JPG.e9c2eff95e45b15025691c4d99b8fc5a.JPG

حال به توضیح کد می‌پردازیم:
در خطوط 7 و 8 کد بالا دو عنصر Text ایجاد کرده‌ایم. در داخل پرانتزهای آنها، نوع فونت را Arial و اندازه آن را برابر 15 پیکسل قرار داده‌ایم. در نتیجه height = 2 به معنای این است که ارتفاع هر یک از عناصر Text برابر 30 پیکسل یعنی 2 برابر اندازه فونت باشد. در خطوط 10 و 11 از متد ()insert برای وارد کردن متن در داخل عناصر Text استفاده کرده‌ایم. پارامتر اول این متد یعنی INSERT به معنای این است که متن به ابتدای عنصر TEXT اضافه شود. به جای این کلمه می‌توان از 1.0 هم استفاده کرد.

در خطوط 13 و 14 عبارت fill=Y باعث می‌شود که اگر ارتفاع عنصر والد یعنی پنجره از ارتفاع دو عنصر Text بیشتر بود، این دو عنصر در راستای عمودی کشیده شده و کل فضای فرم را اشغال کنند. عبارت side=TOP باعث می‌شود که دو عنصر Text در راستای عمودی روی هم قرار بگیرند. در خط 16 یک بازه را انتخاب کرده‌ایم. در داخل متد ()add_tag گفته‌ایم که از کاراکتر 7 تا 18 خط 1 را انتخاب کن. توجه کنید که کاراکتر 18 انتخاب نمی‌شود. در خط 19 هم گفته‌ایم که این کاراکترهای انخاب شده را به رنگ قرمز در بیاور. این کار را با استفاده از متد ()tag_config انجام داده‌ایم. کلمه start در این دو خط تنها یک اسم است که برای بازه انتخاب شده در نظر گرفته‌ایم و می‌تواند هر اسمی باشد.

 

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

RadioButton

عنصر RadioButton دکمه‌ای است که دارای دو حالت خاموش و روشن می‌باشد. این عنصر یک دکمه‌ی دایره‌ای شکل به همراه یک برچسب است. شما با کلیک کردن بر روی دکمه‌ی Radio می‌توانید آنرا از حالت خاموش به روشن و یا بالعکس، تغییر دهید. وقتی که یک دکمه‌ی Radio روشن باشد، یک نقطه در وسط آن قرار می‌گیرد، و زمانی که خاموش باشد، دایره‌ی آن خالی است.

دکمه‌های Radio معمولاً زمانی استفاده می‌شوند که یک کاربر می‌بایست از بین چند گزینه یکی از آنها را انتخاب کند. برای مثال، زمانی که شما بخواهید جنسیت کاربر را مشخص کنید، می‌توانید از دو دکمه‌ی Radio با نام‌های مرد و زن استفاده کنید. وقتی که شما از دکمه‌های Radio استفاده کردید، فقط می‌توانید یکی از آن دو را انتخاب کنید. نحوه تعریف کردن عنصر RadioButton به صورت زیر است:

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

master، بیانگر پنجره والدی است که RadioButton به آن تعلق خواهد داشت و options، تنظیمات پرکاربرد برای RadioButton می‌باشند که می‌توانند به صورت زوج‌های کلید/مقدار که با ویرگول از هم جدا می‌شوند، مورد استفاده قرار گیرند. در جدول زیر لیست این تنظیمات آمده است:

1481235696_C.JPG.1c58132f116d041ddf555e7effda9e81.JPG

572373456_C.JPG.81d63d9a16d24706a5cccf111c5c6ff9.JPG

1207482441_C.JPG.5870ce964d0664b8a95073c446fba10b.JPG

1810986885_C.JPG.7683161d5fff24655470273e25a1187f.JPG

Radiobutton ها بایستی مقدار یکسانی برای variable و مقدار متفاوتی برای value داشته باشند. می‌توانید با استفاده از tab بین این دکمه‌ها جا به جا شوید. مثال زیر کاربرد دکمه‌ی Radio را شرح می‌دهد:

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

در خط 8 کد بالا یک متغیر کنترلی از نوع صحیح ایجاد کرده‌ایم و در خطوط 9 و 10 آن را به خاصیت variable رو عنصر RadioButton اختصاص داده‌ایم تا وضعیت خاموش یا روشن بودن آنها را د رخود ذخیره کند. اما این متغیر چطور بفهمد که کدام دکمه الان روشن و کدام یک خاموش است. دکمه‌ها یک خاصیت به نام value دارند که با قرار دادن مقدار آن در داخل متغیر کنترلی، فهمید که کدام دکمه تیک خورده است. این مقدار زمانی در داخل متغیر کنترلی قرار می‌گیرد که تیک آن دکمه زده شده باشد. در خطوط 19 و 21 با استفاده از متد ()get چک می‌کنیم که مقدار فعلی متغیر کنترلی چند است؟ اگر مقدار 1 بود یک پیغام و اگر 2 بود پیغام دیگر را چاپ می‌کنیم. تمامی این شروط و پیغام‌ها را در داخل یک کنترل کننده رویداد نوشته (خطوط 24-18) و آن را در خط 25 به رویداد کلیک دکمه وصل می‌کنیم:
1513366003_C.JPG.ffdafa46ae747cb8ebd38492126d1abb.JPG

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Checkbutton

عنصر Checkbutton یک دکمه است و به شکل یک جعبه‌ی خالی به همراه یک برچسب در کنار آن نمایش داده می‌شود. در حالت عادی، زمانی که بر روی جعبه‌ی خالی کلیک شود، یک تیک در داخل جعبه نمایان می‌شود که به ما می‌گوید کنترل Checkbutton در حالت تیک خورده قرار دارد. برخلاف دکمه‌ی Radio که فقط اجازه‌ی انتخاب یکی از Radio های فرم را به ما می‌داد، شما می‌توانید چند عدد Checkbutton و یا همه‌ی آنها را تیک بزنید. Checkbutton نیز خواصی را شبیه به خواص Radio در خود جای داده است. برای ایجاد این عنصر به شکل زیر عمل می‌کنیم:

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

master، بیانگر پنجره والدی است که این دکمه به آن تعلق خواهد داشت و options، تنظیمات پرکاربرد برای Checkbutton می‌باشند که می‌توانند به صورت زوج‌های کلید/مقدار که با ویرگول از هم جدا می‌شوند، مورد استفاده قرار گیرند. در جدول زیر لیست این تنظیمات آمده است:

1966089518_c.jpg.6f03ff0904ebd05e313c6895e4b8f93b.jpg

508797279_c.thumb.jpg.f37583cfb615aa576de61dd59438602f.jpg

1896330141_c.jpg.88201529b5155f89193025fbce036112.jpg

توابع پرکاربرد برای این عنصر در زیر آمده است:

895328513_c.jpg.5ba8d90354d2d1e01870c0715d77f4e7.jpg

به مثال زیر توجه کنید:

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

همانطور که قبلاً اشاره شد، اگر چندین RadioButton در درون یک والد باشند همزمان یکی از انها می‌تواند روشن باشد ولی در Checkbutton ها قضیه فرق می‌کند و همه آن‌ها می‌توانند تیک خورده یا نخورده باشند. در نتیجه هر Checkbutton می‌تواند دارای دو حالت تیک خورد یا نخورده باشد و وضعیت آن به وسیله دو خاصیت onvalue و offvalue چک و در داخل متغیر کنترلی ذخیره می‌شود. با این تفاسیر در برنامه بالا، به ازای هر Checkbutton ما یک متغیر کنترلی تعریف کرده‌ایم (خطوط 8، 10 و 12). در خطوط 9، 11 و 13 هم سه Checkbutton ایجاد کرده و آنها را در خطوط 18-16 به سمت چپ فرم می‌چسبانیم. یک دکمه را هم برای نمایش پیغام به برنامه اضافه می‌کنیم (خطوط 14 و 19). در خطوط 29-21 یک کنترل کننده رویداد ایجاد و آن را در خط 31 به رویداد کلیک دکمه وصل کرده‌ایم. هدف کلی برنامه بالا این است که مثلاً با انتخاب چند Checkbutton، نام آنها به وسیله یک پیغام نمایش داده شود. در خط 22 یک متغیر از نوع خالی رشته تعریف کرده‌ایم. چون نام Checkbutton ها از نوع رشته است می‌توانیم آنها را با استفاده از عملگر + به متغیر items اضافه کرده و نمایش دهیم. حال چگونه بفهمیم که کدام Checkbutton انتخاب شده یا تیک خورده است. با استفاده از متد ()get این کار را در خطوط 24 و 26 و 28 انجام داده‌ایم. مثلاً ()var1.get بدین معناست که Checkbutton تیک خورده یا نه؟ البته می‌توانستیم آن را به صورت var1.get() == 1 بنویسیم ولی در حالت پیشفرض، ()var1.get مقدار 1 را بر می‌گرداند. در خط 29 هم مقادیر داخل متغیر items را چاپ می‌کنیم. برنامه را اجرا کرده و با تیک زدن Checkbutton و زدن دکمه، نتیجه را مشاهده کنید:
1473039619_c.jpg.ef4dca94330995bae057622087c75891.jpg

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

LabelFrame

LabelFrame یک عنصر نگه دارنده یا والد ساده است. هدف اصلی آن، عمل کردن به عنوان جداکننده یا در برگیرنده چیدمان‌های پیچیده دیگر است. این عنصر، دارای ویژگی‌های frame، به همراه قابلیت نمایش یک برچسب بوده و نحوه تعریف آن به صورت زیر است:

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

master، بیانگر پنجره والدی است که LabelFrame به آن تعلق خواهد داشت و Options، تنظیمات پرکاربرد برای LabelFrame می‌باشند که می‌توانند به صورت زوج‌های کلید/مقدار که با ویرگول از هم جدا می‌شوند، مورد استفاده قرار گیرند. در جدول زیر لیست این تنظیمات آمده است:

1204975303_c.jpg.886327495d83c4b700064ae87ac307b7.jpg

1905598431_c.jpg.cef0e75a569610e97ed0e5bc3899f7d2.jpg

LabelFrame برای گروه بندی عناصر بکار می‌رود. یکی از کاربردهای خوب LabelFrame این است که، شما می‌خواهید دکمه‌های RadioButton را گروه بندی کنید. با توجه به اینکه فقط یکی از دکمه‌های RadioButton در فرم می‌تواند فعال باشد، شما می‌توانید با گروه بندی کردن آنها بیش از یک دکمه‌ی RadioButton فعال داشته باشید. برای انجام اینکار، دو LabelFrame را بر روی فرم قرار دهید. به مثال زیر توجه کنید:

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

LabelFrame به شما اجازه می‌دهد که برای هر دسته یک عنوان قرار دهید. شما می‌توانید با استفاده از خاصیت text عنصر LabelFrame یک عنوان برای آن قرار دهید. همچنین عنصر LabelFrame در دور آن به طور پیشفرض یک حاشیه قرار دارد. نتیجه اجرای کد بالا به شکل زیر خواهد کرد:
667574957_c.jpg.31fe075f6cad6e1f24e70a9dde88eb4a.jpg

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Listbox

عنصر Listbox برای نمایش لیستی از آیتم‌ها استفاده می‌شود که کاربر می‌تواند یک یا چند آیتم را از میان آنها انتخاب کند. نحوه ایجاد این عنصر به شکل ساده به صورت زیر است:

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

master، بیانگر پنجره والدی است که Listbox به آن تعلق خواهد داشت و Options، تنظیمات پرکاربرد برای Listbox می‌باشند که می‌توانند به صورت زوج‌های کلید/مقدار که با ویرگول از هم جدا می‌شوند، مورد استفاده قرار گیرند. در جدول زیر لیست این تنظیمات آمده است:

1880288154_c.jpg.983975db7db7d06600d71bf657144393.jpg1880288154_c.jpg.983975db7db7d06600d71bf657144393.jpg

844861705_c.jpg.cf5150b7b33837dd98a13b6714b2c3d3.jpg

توابع listbox شامل موارد زیر است:

377056205_c.thumb.jpg.b9b124e02ebb0f3ebfae0c72b5871164.jpg83474338_c.jpg.b7595b91e5d5f7596dee7f8d6df8f86c.jpg

حال درباره برخی از خواص و متدهای عنصر ListBox توضیح دهیم. کد زیر را نوشته :

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

و سپس برنامه را اجرا کنید:
804160180_c.jpg.42d5374fffeaa1e86dbfde42759c86d2.jpg

ممکن است برخی از خطوط کد بالا برایتان نا مفهوم باشد. اما مهم نیست در ادامه آنها را توضیح می‌دهیم. همانطور که گفتیم از خاصیت selectmode برای نحوه انتخاب آیتم‌های ListBox استفاده می‌شود. حال خط 7 کد بالا را به صورت زیر تغییر دهید:

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

برنامه را اجرا و بر روی تک تک آیتمها کلیک و نتیجه را مشاهده کنید

2014163457_c.jpg.3efdce252a0300d172822e0383e80520.jpg

حال همین خط را به صورت زیر ویرایش نمایید:

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

با اجرای برنامه مشاهده می‌کنید که رنگ پس زمینه آیتم انتخاب شده به صورت قرمز در می‌آید:

275953148_c.jpg.25469391ad0f3d70d2cef2997447d226.jpg

برای تغییر رنگ ListBox وقتی که به حالت فوکوس در می‌آید، خط 7 را به صورت زیر تغییر دهید:

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

با اجرای برنامه و کلیک بر روی ListBox رنگ خط کناری آن به صورت زرد در می‌آید:

275953148_c.jpg.25469391ad0f3d70d2cef2997447d226.jpg

حال نوبت به عرض و ارتفاع ListBox می‌رسد. خط 7 را به صورت زیر تغییر دهید:

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

با اجرای برنامه، ارتفاع ListBox به اندازه 3 خط و عرض آن به اندازه 5 کاراکتر کوچک در می‌آید:

213601991_c.jpg.42a4cc34433b079944e7037f8d37b6a6.jpg

حال نوبت متدهای ListBox می‌رسد. در خط 21 کد بالا، خط زیر را اضافه کنید:

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

با اجرای برنامه مشاهده می‌کنید که خطی که دارای اندیس 2 است یعنی خط سوم حذف می‌شود:

233991908_c.jpg.e646e5f5dafc829e4ed8fc820afa83fb.jpg

حال آرگومانی دیگر به متد بالا اضافه کنید:

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

با اجرای برنامه، مشاهده می‌کنید که خطوط 3، 4 و 5 از ListBox حذف می‌شوند. کد بالا به این معناست که خطوط که دارای اندیس‌های 2، 3 و 4 را حذف کن:

627737906_c.jpg.9c761f5de9eee4e6714977110d67bd75.jpg

برای اضافه کردن یک یا چند آیتم به ListBox از تابع ()insert استفاده می‌کنیم. خط 21 را پاک کرده و خط زیر را جایگزین آن کنید:

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

با اجرای کد، بعد از خطی که دارای اندیس 2 است کلمه Oil اضافه می‌شود:

270769861_c.jpg.c66d82adb7701ce4ee10a0022bd89030.jpg

به جای عدد 2 کلمه END را نوشته و برنامه را اجرا و نتیجه را مشاهده کنید. برای به دست آوردن تمامی یا تعدادی از آیتم‌های ListBox از متد ()get استفاده می‌شود. این متد آیتم یا آیتم‌های انتخاب شده را در داخل یک Tuple قرار می‌دهد. به کد زیر توجه کنید:

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

کد بالا، خطوطی 3، 4 و 5 را در داخل یک Tuple به صورت زیر می‌ریزد:

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

به یک مثال کلی‌تر در مورد نحوه استفاده از ListBox توجه کنید:

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

هدف از کد بالا این است که با کلیک بر روی آیتم‌های موجود در یک ListBox، آن‌ها را به ListBox دیگر منتقل کنیم. ابتدا دو لیست باکس در خطوط 7 و 8 ایجاد کرده و آنها را به سمت چپ و راست فرم می‌چسبانیم. در خطوط 19-13 یک دیکشنری ایجاد کرده و سپس با استفاده از یک حلقه for کلیدهای این دیکشنری را در داخل ListBox سمت چپ می‌ریزیم (خط 21 و 22). ما قرار است با دوبار کلیک بر روی هر کدام از این کلیدها، مقدار متناظر با آنها را در LisBox2 بریزیم. برای این کار یک کنترل کننده رویداد در خطوط 29-24 نوشته‌ایم. در خط 25 با استفاده از تابع ()get مقداری که با ماوس بر روی آن کلیک شده است را گرفته و در داخل یک متغیر با نام x می‌ریزیم. اما از کجا بفهمیم که بر روی کدام آیتم کلیک شده است. جواب در همین خط 25 و تابع ()curselection می‌باشد. این تابع آیتمی که بر روی آن کلیک شده یا آیتم جاری را بر می‌گرداند. در خط 26 تمام آیتم‌هایی که در داخل ListBox2 هستند را گرفته و در داخل یک متغیر به نام listValue می‌ریزیم. این کار برای برای جلوگیری از ورود اطلاعات تکراری به ListBox2 است. اما چگونه؟ dictionary[x] به معنای مقدار، مربوط به کلیدی است که بر روی آن دوبار کلیک شده. در خط 26 گفته‌ایم که اگر مقدار مربوط به کلیدی، که بر روی آن دوبار کلیک شده در ListBox2 وجود نداشت، آن را در ListBox2 بریز در غیر اینصورت خیر. در خط 28 هم این کنترل کننده رویداد را به رویداد دوبار کلیک وصل کرده‌ایم. برنامه را اجرا کرده و با دوبار کلیک بر روی آیتم‌ها، نتیجه را مشاهده کنید:
1705436082_c.jpg.67804ec57eda12a9598f9dda1290e144.jpg

c+++++++.jpg

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Spinbox

عنصر Spinbox عموماً برای دریافت اعداد از ورودی و محدود کردن کاربران برای وارد کردن مقادیر غیرعددی بکار می‌رود. عنصر Spinbox از لحاظ شکل ظاهری شبیه به عنصر Entry است، با این تفاوت که دکمه‌هایی به شکل پیکان در سمت چپ یا راست آن برای افزایش و یا کاهش مقدار کنترل وجود دارند:

588741580_c.jpg.7bfb8050ae061fea7641f7b1a0bbe273.jpg

نحوه ایجاد Spinbox به صورت زیر است:

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

master، بیانگر پنجره والدی است که Spinbox به آن تعلق خواهد داشت و options، تنظیمات پرکاربرد برای Spinbox می‌باشند که می‌توانند به صورت زوج‌های کلید/مقدار که با ویرگول از هم جدا می‌شوند، مورد استفاده قرار گیرند. در جدول زیر لیست این تنظیمات آمده است:

844437267_c.thumb.jpg.468d6d2101e4ba8c4b1a2443cb148a7e.jpg

1957975936_c.thumb.jpg.4b0c1f3c8acb66a61b792c894737a187.jpg

944162419_c.jpg.58e7764278eb09eaa1550be205f5407b.jpg

عنصر Spinbox دارای توابع زیر است:

1767291975_c.jpg.8814da206e2dabd28d2e32feb3c8fc0c.jpg

حال می‌خواهیم یک برنامه بسازیم که کنترل Spinbox در آن بکار رفته باشد. به کد زیر توجه کنید:

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

در کد بالا، یک فرم را ایجاد کرده و دو برچسب (lable) و دو کنترل Spinbox بر روی آن قرار داده‌ایم (خطوط 11-8 و 18-15). مقدار خاصیت format کنترل Spinbox برابر با %.2f قرار داده شده، بنابراین این کنترل می‌تواند 2 رقم اعشار دقت داشته باشد (خط 9). مقدار خاصیت increment نیز برابر با 0.50 قرار داده‌ایم، بنابراین افزایش و یا کاهش مقدار به اندازه 0.50 واحد کم یا زیاد می‌شود. مقدار خاصیت to برابر 10000 است، پس قیمت (Price) به آن محدود می‌شود و کاربر نمی‌تواند رقمی بالاتر از آنرا وارد کند.

از آنجاییکه نهایت مقدار کنترل SpinboxQuantity را در جدول بالا 100 قرار داده‌ایم، در نتیجه شما می‌توانید فقط مقادیری نهایتاً تا 100 را در آن وارد کنید. برنامه را اجرا کنید. مقدار کنترل SpinboxPrice را به وسیله‌ی دکمه‌های پیکانی کاهش یا افزایش دهید. مشاهده می‌کنید مقدار آن به اندازه 0.50 واحد افزایش و یا کاهش پیدا می‌کند. در خط 13 یک کنترل دکمه ایجاد کرده و در خط 20 آن را روی فرم قرار داده‌ایم.

در 24-22 یک کنترل کننده رویداد ایجاد کرده که کار آن این است که مقدار موجود در هم ضرب می‌کند. در خط 23 ما مقادیر موجود در SpinboxPrice و SpinboxQuantity را با استفاده از متد ()get به دست می‌آوریم. چون این متد یک رشته را بر می‌گرداند ما مجبوریم مقادیر به دست آمده را جهت عملیات ضرب، به نوع float و int تبدیل کنیم (خط 23). سپس در خط 24 نتیجه عملیات را نمایش دهیم. حال این کنترل کننده رویداد را به رویداد کلیک دکمه در خط 26 وصل می‌کنیم. بر روی دکمه‌ی Calculate کلیک کنید، این دکمه با ضرب کردن مقدار Quantity در Price، قیمت کل را بدست می‌آورد:

1665467251_c.jpg.3845881ebbc3a6c901c6d7e918628211.jpg

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Scrollbar

عنصر Scrollbar یک کنترل کننده لغزنده فراهم می‌آورد که به منظور ایجاد اسکرول عمودی برای عناصری مانند ListBox ،Text و Canvas استفاده می‌شود. همچنین می‌توانید برای اسکرول بار افقی برای عنصر Entry نیز استفاده کنید. نحوه تعریف کردن عنصر Scrollbar به صورت زیر است:

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

master، بیانگر پنجره والدی است که Scrollbar به آن تعلق خواهد داشت و options، تنظیمات پرکاربرد برای Scrollbar می‌باشند که می‌توانند به صورت زوج‌های کلید/مقدار که با ویرگول از هم جدا می‌شوند، مورد استفاده قرار گیرند. در جدول زیر لیست این تنظیمات آمده است:

1496294832_c.thumb.jpg.015616db817bc80c2b87d4df667649e8.jpg

135583169_c.png.750777f8508e9c73a06fe8e74e20a968.png

Scrollbar دارای توابع زیر است :

856111096_c.jpg.917b828a2c591531271bfff138a33c48.jpg

مثال زیر را امتحان کنید:

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

هدف اصلی از کد بالا، اختصاص یک Scrollbar به عنصر listBox است. در خطوط 7 و 8 کد بالا یک Scrollbar ایجاد کرده و آن را به سمت راست فرم چسبانده‌ایم و گفته‌ایم که در محور Y همه فرم را پوشش دهد. در خط 10 یک ListBox ایجاد کرده و مقدار خاصیت yscrollcommand را برابر scrollbar.set قرار داده‌ایم. این بدین معنی است که مقدار اسکرول عمودی ListBox برابر مقداری است که دستگیره Scrollbar نشان می‌دهد. در خطوط 12-11 هم با استفاده از یک حلقه for، صد خط را به ListBox اضافه کرده‌ایم تا اسکرول معنا پیدا کند. در خط 15 هم با استفاده از دستور command و اختصاص تابع ()yview به آن گفته‌ایم که با بالا و پایین کردن دستگیره Scrollbar، عنصر ListBox در راستای عمودی قابل اسکرول باشد. پس از اجرای کد بالا، نتیجه‌ای به شکل زیر ایجاد خواهد شد:
1749984463_c.jpg.d1e1813e331d5bc7fd90e064c64b2c1c.jpg

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Scale

عنصر Scale شبیه یک نوار لغزنده با یک دستگیره است که با استفاده از این دستگیره، امکان انتخاب یک مقدار در یک بازه مشخص می‌دهد. ناحیه‌ای که دستگیره به آن اشاره می‌کند نشان دهنده مقدار جاری کنترل است. نحوه ایجاد این عنصر به صورت زیر است:

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

master، بیانگر پنجره والدی است که Scale به آن تعلق خواهد داشت و options، تنظیمات پرکاربرد برای Scale می‌باشند که می‌توانند به صورت زوج‌های کلید/مقدار که با ویرگول از هم جدا می‌شوند، مورد استفاده قرار گیرند. در جدول زیر لیست این تنظیمات آمده است:

1048910725_c.jpg.801601931dad5b57251f73b97374b871.jpg131089695_c.thumb.jpg.9e1c90acf895750d05da7c5f48440c05.jpg1078013924_c.thumb.jpg.091165a1a83079a61057c70ceebcd0b7.jpg

546932142_c.jpg.92b9aaf2aa9d9ff5df40f8fa059781df.jpg

عنصر scale دارای توابع زیر است :

1317339801_c.jpg.9d92f63478df6d97f0e3be6f33e60151.jpg

قطعه کد زیر را امتحان کنید:

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

هدف از کد بالا، تغییر رنگ پس زمینه یک Label به وسیله سه عنصر Scale می باشد. در خط 11-7 یک تابع تعریف کرده ایم. این تابع سه پارامتر پیشفرض می گیرد. در بدنه این تابع گفته ایم که هر کدام از این پارامترها، مقدار فعلی یک عنصر Scale را در خود ذخیره کنند. این کار باعث می شود که حتی اگر شما دستگیره یک Scale را حرکت ندهید، متغیر مربوطه مقدار 0 را در خود به صورت پیشفرض داشته باشد. پس متغیرها یا مقدار پیشفرض خود یعنی 0 را دارند یا به محض حرکت دادن دستگیره ها، مقدار فعلی Scale را در خود ذخیره می کنند. در خط 11 گفته ایم، که با فراخوانی تابع ()from_rgb_ رنگ پس زمنیه Label تغییر کند. #{:02X}{:02X}{:02X} یک رشته قالب بندی شده سه قسمتی است که از آن برای نمایش رنگ به صورت هگزادسیمال استفاده می شود. در ادامه هم هر کدام از مقادیر مربوط به پارامترهای تابع ()from_rgb_، یعنی g ،r و b با استفاده از متد ()format جایگزین آن سه قسمت رشته قالب بندی می شوند. فرضا اگر ما دستگیره اولین عنصر Scale را روی عدد 145 بگذاریم، مقداردهی این رشته قالب بندی به صورت زیر خواهد شد:

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

و در نتیجه رنگ پس زمینه Label به صورت زیر خواهد شد:

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

اما چگونه این مقادیر با حرکت دادن دستگیره Scale باعث تغییر رنگ پس زمینه Label می شوند. در خطوط 20-13 سه عنصر Scale ایجاد کرده ایم و با استفاده از دستور command تابع ()from_rgb_ را فراخوانی کرده ایم. اینکار باعث می شود که با حرکت دستگیره Scale، تابع ()from_rgb_ فراخوانی شده و مقدار فعلی دستگیره در متغیر مربوطه قرار بگیرد و در نهایت رنگ پس زمینه Label با توجه به آن مقدار تغییر کند. برنامه را اجرا و با حرکت دستگیره ها به سمت راست و چپ، نتیجه را مشاهده کنید:

625660589_c.jpg.eda70f19d1dc26c389cf621f11531956.jpg

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   بازگردانی قالب بندی

  حداکثر استفاده از ۷۵ شکلک مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

در حال بارگذاری

  • مطالب مشابه

    • توسط  Doctor Robot
      کاربرد پایتون در شبکه
      میدانیم پایتون زبانی است با قابلیت های بسیار، ازبرنامه نویسی برای وب گرفته تاهوش مصنوعی و....
      امروز میخواهیم قدرت این زبان محبوب را در شبکه بررسی کنیم و بفهمیم چه کاربردی دارد؟
      چگونه میتوان از این زبان در بحث شبکه استفاده کرد؟
      زبان پایتون با استفاده از ماژول خود به نام سوکت در شبکه کار میکند پس قبل از آن ما شما را با تاریخچه این ماژول وهمچنین تعریفی ازآن آشنا میکنیم سپس آموزش پایتون سوکت را به طورمختصر برای  شما بیان میکنیم  پس باماهمراه باشید.
  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
×
  • جدید...