رفتن به مطلب



iran rules jazbe modir
ADS mahak

Doctor Robot

Programming-Py python Gui

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

دوستان عزیز سلام

دوره آموزشی برنامه نویسی python Gui شروع شد

پرسش و پاسخ ممنوع 

اسپم ممنوع

دوستان این آموزش تا حد امکان به زبان ساده توضیح داده شده

پیش نیاز این دوره :

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

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


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

telegram channel   jazbe modir

رابط کاربری گرافیکی (GUI)

پایتون گزینه‌های مختلفی را برای توسعه رابط کاربری گرافیکی (GUI) ارائه می‌دهد. مهم‌ترین آنها به شرح زیر است:

Tkinter: رابط پایتون برای بسته Tk است، که به صورت پیش فرض همراه پایتون ارائه می‌شود. ما در ادامه این مورد را بررسی می‌کنیم.

wxPython: رابط متن باز پایتون برای wxWindows (http://wxpython.org) می‌باشد.

jPython: این رابط امکان دسترسی به کتابخانه‌های جاوا را می‌دهد (http://www.jython.org).

رابط‌های فراوان دیگری هم وجود دارند که با جستجو در اینترنت می‌توانید به آنها دسترسی بیابید.

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


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

Tkinter

Tkinter کتابخانه گرافیکی استاندارد پایتون است. با استفاده از Tkinter در پایتون، می‌توانید خیلی سریع و آسان برنامه‌های گرافیکی ایجاد نمایید. Tkinter رابط شیء گرای قدرتمندی را برای بسته گرافیکی Tk ارائه می‌دهد. ایجاد برنامه گرافیکی با استفاده از Tkinter کار راحتی است. همه کاری که باید انجام بدهید شامل مراحل زیر است:

import کردن Tkinter

ایجاد پنجره اصلی برنامه گرافیکی

اضافه کردن یک یا چند کنترل (widget) به برنامه گرافیکی

ورود به حلقه رویدادها، تا بتوانید برای هر رویدادی که کاربر ایجاد می‌کند، عملی را انجام دهید.

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

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

این تکه کد پنجره‌ای به شکل زیر ایجاد خواهد کرد:


1647807874_c.JPG.82cbe7dd226256ad3a0ab6a76dbf9b51.JPG

 

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


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

کنترل‌های Tkinter

Tkinter کنترل‌های مختلفی مانند button ،label و text box را برای استفاده در برنامه‌های گرافیکی فراهم کرده است. معمولاً به این کنترل‌ها، عنصر یا widget می گویند، ولی ما در این سری آموزشی به آنها کنترل می گوییم. در حال حاضر 15 نوع کنترل در Tkinter وجود دارد که در جدول زیر لیست آنها را مشاهده می‌کنید:

1665025803_c.JPG.6f1bc64679b3121613b5c5b30dfc0084.JPG

794995272_c.JPG.cbf782d3545e52625dd316fa4e99f489.JPG

 

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


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

صفات استاندارد کنترل‌ها

کنترل‌های TKinter دارای صفاتی هستند که با استفاده از آنها می توان، اندازه، رنگ و فونت و … کنترل را مشخص کرد. در زیر به این صفات اشاره شده است:

  • Dimensions
  • Colors
  • Fonts
  • Anchors
  • Relief styles
  • Bitmaps
  • Cursors

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


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

چیدمان کنترل‌ها

همه کنترل‌ها Tkinter به توابع خاصی برای مشخص کردن نحوه چیدمان عنصر دسترسی دارند. هدف این توابع مرتب کردن کنترل‌ها بر روی عنصر والد (دربرگیرنده‌شان) است. Tkinter سه تابع زیر را برای این منظور ارائه می‌دهد:

  1. ()pack: این تابع کنترل‌ها را قبل از قرار گرفتن بر روی فرم والدشان، درون بلوک‌هایی قرار می‌دهد.
  2. ()grid: این تابع کنترل‌ها را در ساختارهایی شبیه به جدول بر روی فرم والد مرتب می‌کند.
  3. ()place: این تابع کنترل‌ها را در موقعیت مشخصی بر روی فرم والد قرار می‌دهد.

در درس های آینده در مورد موارد ذکر شده در این درس به طور کامل توضیح می دهیم.

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


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

چیدمان عناصر

چیدمان عناصر (layout manager)، نحوه چینش عناصر را بر روی فرم یا والدشان، مشخص می‌کند. همه عناصر tkinter به توابع خاصی، برای مشخص کردن نحوه چیدمان عنصر، دسترسی دارند. هدف این توابع مرتب کردن عناصر بر روی عنصر والد (دربرگیرنده‌شان) است. tkinter سه تابع زیر را برای این منظور ارائه می‌دهد:

  • ()pack
  • ()grid
  • ()place

اکنون به صورت مختصر به بررسی این توابع می‌پردازیم.

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


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

()pack

این تابع، عناصر را قبل از قرار گرفتن بر روی فرم والدشان، درون بلوک‌هایی قرار می‌دهد :

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

pack_options، تنظیماتی هستند که نوع رفتار یا چینش عنصر را مشخص می‌کنند. در داخل پرانتز تابع ()pack می‌توان از تنظیمات زیر استفاده کرد:

  • expand : اگر مقدار این گزینه را برابر 1 یا true قرار دهید و اندازه والد از اندازه فرزندش بزرگتر باشد، آن اندازه یا فضای اضافی، برای عنصر فرزند در نظر گرفته می‌شود ولی این بدین معنا نیست که عنصر فرزند همه آن فضا را اشغال می‌کند:

1242879550_c.jpg.f3327822019e3cc36feb6db0f149bf06.jpg

 

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

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

همانطور که در کد بالا مشاهده می‌کنید، کافیست در داخل پرانتز expand=1 را بنویسید تا رفتار عنصر را مسخص کنید.

  • fill : با تنظیم این گزینه، عنصر فضایی را که در اختیارش قرار داده شده اشغال می‌کند. می‌توان با استفاده از مقادیر X ،Y ،NONE و BOTH نحوه پر کردن فضا را مشخص کنیم:

179992131_c.jpg.bc236f32fa977e152eeda15ddf5fcb60.jpg

مقادیر X و Y به ترتیب باعث می‌شوند که عنصر در راستای افقی و عمودی و مقدار BOTH باعث می ود که عنصر در هر دو راستای افقی و عمودی فضا را اشغال کند. به یک نکته در همین جا اشاره کنیم و آن این است که مقادیر Y و BOTH در صورتی اثر خود را نشان می‌دهند که همراه با گزینه expand = 1 به کار بروند. مثلاً ما برای ایجاد ساختاری مانند شکل بالا، کدی شبیه به کد زیر نوشته‌ایم :

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

  • side : این گزینه، مقادیر RIGHT ,LEFT ،TOP ،BOTTOM را دریافت کرده و مشخص می‌کند که چیدمان عناصر ابتدا از کدام قسمت والد، شروع شود. به شکل زیر توجه کنید:

404673138_c.jpg.5eb55694e3c7380a6c31772538b5a47c.jpg

 

برای ایجاد همچنین چیدمانی، ما کدهایی به صورت زیر نوشته‌ایم:

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

ممکن است این سؤال برایتان پیش بیاید که اگر دو عنصر دارای با مقادیر side یکسان چه اتفاقی می افتد؟ در این صورت، اگر عناصر دارای مقدار LEFT یا RIGHT باشند به ترتیب در کنار هم و اگر دارای مقادیر TOP و BOTTOM باشند روی هم قرار می‌گیرند.

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


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

()grid

این تابع، عناصر را در ساختارهایی شبیه به جدول، بر روی فرم والد، مرتب می‌کند:

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

pack_options، تنظیماتی هستند که نوع رفتار یا چینش عنصر را مشخص می‌کنند. در داخل پرانتز تابع ()grid می‌توان از تنظیمات زیر استفاده کرد:

vv.jpg.18eaac1becd45a160c54d82ff4dccbdb.jpg

1921065146_c.jpg.3837c3b8afcddb40875308134acc033a.jpg

 

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


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

()place

این تابع، عناصر را در موقعیت مشخصی، بر روی فرم والد، قرار می‌دهد:

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

pack_options، تنظیماتی هستند که نوع رفتار یا چینش عنصر را مشخص می‌کنند. در داخل پرانتز تابع ()grid می‌توان از تنظیمات زیر استفاده کرد:

vvv.jpg.38fc17df8623a95349118737d7e6c8fd.jpg

bordermode


477821768_c.jpg.bd040270c46b6760ab7ac0460658be5c.jpg

relheight, relwidth
مقداردهی این دو خاصیت، مثلاً relwidth=1.0، یعنی اینکه عنصر ما، با کم و زیاد شدن عرض والدش، همواره تمام عرض آن را بپوشاند. به دو شکل زیر توجه کنید:

1203559876_c.jpg.8197340d3d2b7a54fe5f166b4865e26b.jpg

وقتی فرم را بزرگ کنیم، عنصر ما یعنی Widget همواره تمام عرض والد خود را پوشش می‌دهد:
 

954277126_c.jpg.67ea554ae749340b4cebf4dfc83796db.jpg

relx, rely
با مقداردهی این دو خاصیت، همواره تناسب رعایت می‌شود. یعنی اگر شما اندازه فرم را کوچک و بزرگ کنید، عنصر هم بر اساس مقداری که به این دو خاصیت داده‌اید تغییر مکان می‌دهد. مثلاً اگر مقادیر این دو خاصیت relx=0.5 و rely=0.5 باشد، با بزرگ و کوچک شدن فرم، گوشه بالا و سمت چپ عنثر همواره در وسط فرم قرار می‌گیرد. به دو شکل زیر توجه کنید:

947597526_c.jpg.a1dba9105223ec76c4ececf4dd4896a7.jpg

382924607_c.jpg.5887800380314159be85323fd481a5af.jpg

x, y
با مقداردهی این دو خاصیت، اگر شما اندازه فرم را کوچک و بزرگ کنید، عنصر تغییر مکان نمی‌دهد. مثلاً اگر مقادیر این دو خاصیت y=50 و x=50 باشد، عنصر 50 پیکسل به سمت راست و 50 پیکسل به سمت پایین می‌آید و با بزرگ و کوچک شدن فرم، این مکان را حفظ می‌کند. به دو شکل زیر توجه کنید:

284169999_c.jpg.a157df80ec073bdb97d1aae05becf111.jpg

918919595_c.jpg.f3c1259dc188dc9b160f5f43a6bbde3e.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 کاربر

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

×
×
  • جدید...