مقدمه روابط گرافیكی كاربر
از PyLearn.com
| نکته ها و ترفند ها • ماژول ها و ابزار وابسته • نمونه پروژه و برنامه • پرسش و پاسخ |
فهرست مندرجات |
رابط گرافیکی کاربر چیست؟
GUI مخفف عبارت Graphical User Interface یا رابط گرافیكی كاربر میباشد. GUI در حقیقت نوعی رابط كاربری میباشد كه به كاربر كامپیوتر امكان برقراری ارتباط به صورت گرافیكی و بسیار بهینه شده و قابل فهم و نمایش را میدهد. رابط گرافیكی با استفاده از سمبلها و تصاویر گرافیكی سعی در ایجاد عناصری با معنی خاص میباشد كه كار با كامپیوتر را بسیار راحتتر میكند.
در حقیقت رابط گرافیكی تلاشی برای فرار از محیطهای متنی میباشد. قبل از ایجاد GUI تمامی كاربران كامپیوترها مجبور بودند تمامی دستورات و در حقیقت ورود و خروج داده را از طریق متنی انجام دهند. حتما اكثر شما با صفحات سیاه داس یا ترمینال گنو/لینوكس آشنایی دارید. البته این محیطهای متنی هنوز هم طرفداران بسیاری دارد و مخصوصا در سرورها یا كاربردهایی خاص بسیار بهینهتر و مناسبتر میباشد. اما اكثرا كاربران و مخصوصا كاربران خانگی كار با این محیط متنی را بسیار سخت و وقتگیر میدانند! پس تلاشی برای ایجاد عناصر گرافیكی (widget) كه هر یك مفهوم و كاربرد خاصی داشتند آغاز شد. اكثر عناصر در سیستم و حتی سختافزارها حالتی ترسیمی و نمایشی پیدا كردند و كاربر میتوانست با دستگاه ماوس در محیطی گرافیكی حركت كرده، عناصر مختلف را انتخاب و یا وارد بخشهای مختلفی شود.
هم اكنون تقریبا تمامی كاربران كامپیوتر با این رابطهای گرافیكی آشنایی كامل دارند و حداقل با یك یا چند نمونه از این محیطها كار كردهاند.
محیطهای میزكار
اكنون و پس از گذشت سالها از پیدایش محیطهای گرافیكی پیشرفتهای بسیاری در این زمینه به وجود آمده است. محیطهای مختلفی توسط شركتها و نهادهای مختلفی شكل گرفته كه هر كدام دارای ویژگیهایی خاص و منحصر بهفرد میباشد. محیط میزكار یا desktop environment محیطی آشنا شامل همه عوامل و اشیا گرافیكی میباشد كه در حقیقت رابط اصل كاربر با سیستم میباشد. محیط دسكتاپ معمولا شامل منویی اصلی به همراه یك صفحه میزكار شامل آیكن نرمافزارها و ابزار مختلف میباشد. محیطهای میزكار مختلفی با امكانات و ویژگیهای متنوع موجود میباشد. از مهمترین آنها میتوان موارد زیر را نام برد:
- Aero: ویندوز ویستا
- Aqua: مك او اس تِن (Mac OS X)
- GNOME: گنو/لینوكس و سایر سیستمعاملهای مبتنی بر یونیكس
- KDE: گنو/لینوكس و سایر سیستمعاملهای مبتنی بر یونیكس
- Xfce: گنو/لینوكس و سایر سیستمعاملهای مبتنی بر یونیكس
برنامهنویسی رابط گرافیكی با پایتون
زبان پایتون به صورت پیشفرض امكانات و ابزار كاملی برای برنامهنویسی رابط گرافیكی ندارد! در نگاه اول شاید این مورد یك ضعف یا كمبود این زبان برداشت شود! اما در پس این موضوع مزایایی نهفته هست كه باعث شده است خود پایتون كتابخانههای گرافیكی منحصر بهفردی نداشته باشد! برخلاف بقیه زبانها كه اكثرا كتابخانهها و ماژولهایی برای برنامهنویسی رابط گرافیکی كاربری (GUI) دارند. در ادامه به بررسی مزایای نبود رابط گرافیكی منحصر بهفرد پرداخته می شود. ایجاد، توسعه و نگهداری كتابخانههای رابط كاربری معمولا كاری بسیار سخت میباشد كه نیازمند صرف انرژی، وقت و زمان زیادی هست! از طرفی هم اكنون رابطهای گرافیكی بسیاری موجود هست كه بسیار خوب توسعه پیدا كردهاند و هم اكنون هم با سرعت و نظم خوبی در حال توسعه میباشد. پس بهجای اختراع دوباره چرخ! میتوان به جای ایجاد كتابخانهها و ابزار جدید از همین كتابخانههای گرافیكی موجود استفاده كرد و در عوض در توسعه آنها سهیم بود!
از طرفی هنگام ایجاد كتابخانههای رابط گرافیكی تقریبا مهمترین مورد تصمیمگیری این نكته هست كه ابزار مورد نظر از توابع و كتابخانههای (library) سطح پایین سیستمعامل مورد نظر برای اعمالی چون نمایش عناصر گرافیكی استفاده كند یا اینكه توسط موتوری درونی و به صورت مستقل عمل كند. هر یك از این موارد مزیتها و معایبی را دارا میباشد. استفاده از كتابخانههای یك سیستمعامل باعث وابسته شدن به آن پلتفرم خاص شده و قابلیت چند پلتفرمی را بسیار سخت می كند و دارا بودن موتوری درونی و مستقل بودن سختیهای پیادهسازی و نگهداری! در ثانی هر یك از روابط گرافیكی دارای مزیتهای خاصی بوده و طرفداران مخصوص به خود را داراست. پس توسعهدهندگان زبان پایتون بهجای تمركز بر روی چنین مواردی فكری دیگر اندیشیدهاند. پایتون بدون رابط گرافیكی کاربر ارائه می شود در عوض ابزارهایی واسط برای پایتون توسعه مییابند كه به آسانی امكان استفاده از كتابخانهها و رابطهای گرافیكی مختلفی را در پایتون فراهم می كنند. پس هر برنامهنویس میتواند با توجه به علاقه و نیاز خود یا كاربر هدف یكی از ابزارهای موجود برای ایجاد برنامههای گرافیكی را انتخاب و توسط آن شروع به ساخت برنامههای گرافیكی می كند.
رابطهای گرافیكی کاربر قابل استفاده
پایتون دارای ابزارهایی برای كار با تعداد متنوعی از رابطهای گرافیكی میباشد. به طوری كه كاربر و حتی خود برنامهنویس احساس می كند كتابخانههای مربوطه بخشی از پایتون می باشد! رابطهای گرافیكی کاربر قابل استفاده در پایتون عبارتند از:
- چارچوب Qt با استفاده از ابزار PyQt
- Gtk با استفاده از PyGTK
- WxWidgets با استفاده از WxPython
- Tk با استفاده از TkInter
- دات نت / مونو با استفاده از مفسر دوباره پیادهسازی شده IronPython
- Java با استفاده از مفسر دوباره پیادهسازی شده Jython
- و ...

