توسعه پروژه های C++ مبتنی بر Qt با استفاده از Eclipse

C++ Qt Development using Eclipse

C++ Qt Development using Eclipse

چكیده

در این مقاله به بحث پیرامون C++/Qt خواهیم پرداخت و همزمان با مفاهیم اولیه Qt آشنا خواهیم شد. همچنین با IDE قدرتمند Eclipse و پیکربندی آن جهت استفاده در کد نویسی C++/Qt, C/C++, Perl, Python/Jython, Ruby و هر زبان برنامه نویسی دیگری آشنا خواهیم شد.

در پایان نحوه نصب و پیکربندی Qt به همراه کامپایلر پیش فرض آن یعنی GCC Compiler را جهت کار با Eclipse مورد بررسی قرار می دهیم.

به دلیل تسلط نگارنده بر Mac OS X و Windows تمامی مقاله پیرامون Leopard و XP Professioanl x86 می باشد و نصب نرم افزارهای مورد نظر در لینوکس و سایر سیستم های عامل موردنظر را به مخاطب مقاله واگذار می نماییم.

همچنین فرض بر این است که مخاطب مقاله دارای مهارت لازم در کار با C و یا C++ می باشد.

مقدمه

فرض کنید در محیطی کار می کنید که شما و هر یک از همکاران تان از یک سیستم عامل خاص استفاده می نماید. برای مثال ممکن است شما در یک استودیوی فیلم سازی کار کنید که از نرم افزار Maya استفاده می نماید. نقش شما در گروه به عنوان توسعه دهنده نرم افزار Maya از طریق نوشتن Plug-ins می باشد. همانطور که می دانید توزیع های مختلفی از این نرم افزار برای سیستم عامل های Windows, Mac OS X1, Linux موجود می باشد.

حال اگر قرار باشد Plug-in شما با API ویندوز اجرا شود پس تکلیف سایر همکاران غیر ویندوزی تان چه خواهد شد؟

آیا تا به حال واقعا به این موضوع اندیشیده اید که چگونه می توانید نرم افزاری به معنای واقعی Cross-Platform داشته باشید که بدون هیچگونه مشکلی در چندین Platform به صورت تقریبا یکسان اجرا شود؟

واقعیت این است که پیش از این برنامه نویسان متعددی به این موضوع اندیشیده اند و راه حل های متعددی هم برای این مسئله ابداع شده است. برخی از این راه حل ها در ذیل می آید:

  • دوباره نویسی کد برنامه برای هر سیستم عامل که از مزایای آن Native بودن کامل برنامه است و از معایب آن صرف هزینه و زمان به علاوه نیروی انسانی بسیار بیشتر است.
  • نوشتن برنامه تحت یک ماشین مجازی مانند Java و یا .NET/Mono2 که از مزایای آن این است که هرجائی که ماشین مجازی اجرا شود برنامه شما نیز اجرا می شود. در واقع هر سیستم عاملی که یک نسخه از ماشین مجازی در آن نصب شده باشد توانائی اجرای برنامه شما را خواهد داشت. از مزایای آن می توان به مواردی از قبیل نوشتن یکباره کد و عدم نگرانی از کامپایل مجدد آن برای هر سیستم عامل٬ زمان تولید کمتر٬ صرف هزینه و نیروی انسانی کمتر٬ توسعه سریعتر برنامه به دلیل RAD3 بودن این ابزارها و … اشاره کرد. همچنین از معایب آن نیاز به ماشین مجازی در ماشین مقصد (در واقع عدم اجرای برنامه بدون ماشین مجازی)٬ اجرای کندتر برنامه به دلیل ساختار پیچیده این نوع ماشین ها – خصوصا در بار اول اجرا به دلیل ترجمه به Native Code – و استفاده بی رویه از حافظه می باشد.
  • استفاده از Cygwin4 – بخوانید sɪɡwɪn – که در واقع مجموعه ای از ابزارها برای مهیا ساختن محیطی Unix/Linux گونه تحت یک خط فرمان با رابط کاربری متن گونه می باشد که بخوبی بر روی ویندوز های NT, 2000, XP, Vista, 9X اجرا می شود. در واقع کار آن پورت کردن برنامه های Unix/Linux بر روی ویندوز و مهیا ساختن لایه ای محکم جهت ارائه توابع API لینوکس می باشد. که با توجه به محدودیت های آن عملا میدان استفاده کمی دارد. نمونه خوبی از آن پروژه مشهور ffmpeg5 می باشد که برای مدتی توسط آن به ویندوز پورت می شد. پروژه هائی که با Cygwin کامپایل می شوند برای اجرا همیشه به فایلی با نام cygwin1.dll که در واقع لایه شبیه ساز API لینوکس است احتیاج دارند.
  • استفاده از یکWidget Toolkit (اسامی دیگر: GUI Widget یا Widget Library و یا GUI Toolkit) که در ادامه بدان خواهیم پرداخت.

Widget Toolkit

یک WT مجموعه ای از ابزارهاست که به برنامه نویسان و توسعه دهندگان نرم افزار اجازه می دهد برای هر سیستم عامل و پلتفرمی توسط یک کد مشترک و پایه بدون نیاز به تغییر سورس کد٬ برنامه های خود را کامپایل نمایند. معمولا یک WT خوب اجازه کار با چندین زبان برنامه نویسی را می دهد و فقط مختص به یک زبان برنامه نویسی نمی باشد. برنامه ای که توسط یک WT امروزی نوشته شود از لحاظ رابط کاربری یا به اختصار GUI6 عموما در سیستم عامل مقصد دقیقا همانند برنامه ای که از ابتدا برای یک سیستم عامل خاص نوشته شده است به نظر می رسد. برخی از WT ها برای هر سیستم عامل٬ رابط کاربری را شبیه سازی می نمایند در حالی که برخی دیگر به جای شبیه سازی رابط کاربری از توابع API داخلی سیستم عامل برای ترسیم رابط کاربری استفاده می نمایند که طبیعتا سرعت اجرای برنامه نوشته شده با استفاده از این نوع WT و سازگاری آن ها بیشتر می باشد. علاوه بر این یک WT پیشرفته بیشتر به شکل یک Framework یا چارچوب کاری عمل می نمایند و علاوه بر رابط کاربری توابعی را مثلا جهت کار با ساعت و تاریخ٬ شبکه٬ کار با فایل ها٬ OpenGL و غیره ارائه می نمایند.

برخی از این WT ها تجاری و برخی دیگر Open Source می باشند. برخی دیگر هم دارای چندین License برای مقاصد مختلف می باشند. نمونه ای از پرکاربردترین WT ها wxWidgets, Qt, Mozilla Application Framework می باشد که در نرم افزارهای متعدد از آنها استفاده شده است.7

برنامه هائی که با اکثر WT ها نوشته می شوند در هیچ یک از سیستم های عامل احتیاج به نصب هیچ نرم افزاری برای اجرا ندارند و بصورت Native اجرا می شوند البته تعداد معدودی از WT ها به نصب بسته هائی در سیستم عامل مقصد نیازمندند. هیچ یک از سه مورد فوق الذکر به بسته اضافی در سیستم عامل مقصد نیاز ندارند و به صورت Native اجرا می شوند.

به دلیل جلوگیری از طولانی شدن موضوع از انجام هر گونه بررسی در مورد WT های مختلف صرف نظر می نمائیم و به انتخاب نگارنده تنها به توضیحاتی در مورد Qt بسنده می نمائیم. در ادامه این مقاله و دنباله های آن به پلتفرم Qt می پردازیم.

Trolltech Qt

Qt (بخوانید cute) یک چارچوب کاری و راه حل توسعه نرم افزار به صورت Cross-Platform می باشد که بیشتر استفاده آن در توسعه رابط کاربری می باشد (از این جهت آن را یک WT می نامند). کار توسعه این نرم افزار بر عهده شرکت نروژی Trolltech می باشد که در تاریخ بیست و هشتم ژانویه ۲۰۰۸ توسط شرکت فنلاندی Nokia خریداری و تصاحب شد.8

Qt با ۱۴ سال سابقه توسعه٬ بطور قابل ملاحظه ای در توسعه نرم افزارهای گوناگونی از جمله نرم افزارهای ذیل به کار رفته است:

  • Adobe Photoshop Elements (قبلا Adobe Photoshop Album): نرم افزاری برای مدیریت تصاویر
  • CFDesign: نرم افزاری جهت طراحی های مهندسی و صنعتی
  • CSpace: پلتفرمی برای ارتباطات کاربر به کاربر به صورت غیر متمرکز و ایمن که از Qt در طراحی رابط کاربری آن استفاده شده است
  • Doxygen: نرم افزاری جهت مستند سازی کدها
  • Google Earth: نرم افزار سه بعدی نقشه و همچنین رصد آسمان گوگل
  • KDE: محیط دسکتاپ مشهور برای سیستم عامل های مبتنی بر یونیکس
  • KDELibs: کتابخانه پایه برای بسیاری از نرم افزارهای مبتنی بر KDE
  • Last.fm Player: نرم افزار سمت کاربر برای رادیوی اینترنتی و وب سایت های موسیقی
  • Launchy: نرم افزاری کد باز جهت یافتن و اجرای سریعتر برنامه ها توسط میانبرها
  • LMMS: نرم افزاری کدباز جهت ترکیب و ساخت موسیقی
  • LyX: یک رابط کاربری٬ کاربرپسند و آسان برای نرم افزار مشهور تایپ ریاضی LaTex
  • Mathematica: نرم افزاری که در محاسبات جبری٬ ریاضیاتی و مهندسی کاربرد دارد٬ در نسخه لینوکس از Qt جهت رابط کاربری استفاده شده است
  • Mixxx: نرم افزاری کد باز جهت میکس موسیقی بصورت DJ گونه
  • Motorola A760: در این گوشی از Qt Embedded در طراحی رابط کاربری استفاده شده است
  • MythTV: نرم افزار کد باز ضبط تصاویر ویدیوئی
  • Opera: یک نرم افزار مرورگر که در نسخه لینوکس از Qt استفاده کرده است
  • Packet Tracer: نرم افزار شبیه ساز ردیاب بسته شرکت سیسکو جهت مصارف آموزشی شبکه که از نسخه ۴.۰ به بعد از Qt استفاده نموده است
  • Pencil: نرم افزار کد باز طراحی انیمیشن سنتی
  • Psi: نرم افزاری پیام رسان برای پروتکل XMMP
  • Scribus: نرم افزاری جهت نشر کامپیوتری
  • SugarSync: نرم افزار پشتیبان گیری و همسان سازی داده ها و سرویس دسترسی اطلاعات برای نرم افزار Sharpcast
  • Skype: نرم افزار گفتگوی اینترنتی نظیر به نظیر (کاربر با کاربر)
  • TOra: ابزاری جهت مدیریت پایگاه داده
  • VirtualBox: نرم افزاری جهت مجازی سازی سیستم عامل ها
  • VisIt: ابزاری جهت شبیه سازی موازی تعاملی به منظور مشاهده داده های علمی
  • VisTrails:‌ سیستم مدیریت جریان کاری علمی و تجسمی
  • Xconfig: ابزار پیکربندی هسته لینوکس
  • VLC Media Player: پخش کننده چند رسانه ای کد باز که از نسخه 0.9 از Qt استفاده نموده است
  • YakaPhone: تلفن نرم افزاری کد باز برای پروتکل IAX

در حال حاضر بیش از ۵٫۰۰۰ مشتری تجاری از Qt استفاده می نمایند که در این میان نام شرکت های بزرگی مانند Google, Adobe, Motorola, Sony, Skype, Philips, Panasonic, Opera و … و حتی استودیوهای فیلم سازی مانند Walt Disney, LucasFilm, Weta نیز دیده می شود. همچنین نام های کد باز مشهوری مانند Vidalia, VirtualBox, VLC, KDE, Pencil, OPIE و … به خوبی در این لیست خودنمائی می کند.

Qt برای پلتفرم های ذیل در دسترس می باشد:

  • Qt/X11: برای X Window System (Unix/Linux)
  • Qt/Mac: برای Apple Mac OS X
  • Qt/Windows: برای Microsoft Windows
  • Qt/Embedded: برای دستگاه های قابل حمل از قبیل PDA ها و Smartphone ها که قبلا با نام Qtopia شناخته می شد
  • Qt/WinCE: برای Windows CE
  • Qt Jambi: برای اجرا بر روی Java

برای هر یک از پلتفرم های فوق الذکر چهار نسخه از Qt در دسترس می باشد:

  • Qt Console: نسخه ای جهت توسعه در محیط کنسول (پنجره های Dos گونه)
  • Qt Desktop Light: نسخه ای که فقط برای طراحی رابط کاربری بکار می رود و فاقد هرگونه پشتیبانی از شبکه و پایگاه داده می باشد
  • Qt Desktop: نسخه کامل و تجاری با تمام امکانات
  • Qt Open Source Edition: نسخه کد باز و کامل با برخی استثنائات (برای مثال در نسخه کد باز٬ کلاس ActiveQt برای کار با ActiveX ها در ویندوز وجود ندارد)٬ برای توسعه دهندگان نرم افزارهای رایگان و کد باز

لازم به ذکر است Qt تحت لیسانس دوگانه نرم افزاری GPL نسخ ۲ و ۳ با استثنائاتی ویژه به همراه لیسانس اختصاصی تجاری برای همه ی پلتفرم های مورد پشتیبانی در دسترس می باشد. لیسانس تجاری به برنامه نهائی اجازه خواهد داد تا تحت لیسانس های گوناگونی از جمله free software/open source - از قبیل LGPL و یا Artistic License - و یا لیسانس اختصاصی مالک قرار بگیرد.

نتیجه اینکه استفاده از Qt برای نرم افزارهای کدباز و یا رایگان کاملا رایگان می باشد اما برای استفاده از آن بصورت تجاری بایستی به عنوان مشتری شرکت تولید کننده یعنی Trolltech وارد عمل شوید.

در نگارش تجاری شما از نسخه ۳۰ روزه نرم افزار در حالت ارزیابی به همراه پشتیبانی فنی برخوردار خواهید بود؛ و در حالت کد باز شما به کد منبع Qt دسترسی خواهید داشت اما هیچگونه پشتیبانی فنی به شما ارائه نخواهد شد.

زبان پیش فرض Qt برای کار C++ می باشد اما نگارش های دیگری برای زبان های مختلف موجود می باشد:

  • QtAda برای Ada
  • Qyoto/Kimono برای C#
  • Qt Jambi برای Java
  • Pascal
  • Perl
  • PHP-Qt برای PHP
  • PyQt برای Python
  • RubyQt برای Ruby

برای کامپایل C++/Qt می توان از کامپایلرهای گوناگونی از جمله GCC C++ Compiler9 و Visual Studio شرکت Microsoft استفاده نمود.

همانطور که گفته شد Qt برای اکثر پلتفرم های امروزی با پشتیبانی تقریبا یکسانی موجود می باشد که علاوه بر ویژگی های رابط کاربری از دسترسی به پایگاه داده SQL٬ پردازش XML٬ مدیریت رشته ها – threed managements – در برنامه های چند رشته ای٬ پشتیبانی از شبکه٬ به همراه API یکپارچه مستقل از سیستم عامل برای مدیریت و کار با فایل ها٬ همچنین OpenGL پشتیبانی می نماید. حتی از SVG10 و WebKit11 نیز پشتیبانی می نماید.

QSA12 که براساس ECMAScript/JavaScript می باشد یک مجموعه ابزار کد باز است که به توسعه دهندگان نرم افزار اجازه می دهد تا با استفاده از زبان مفسری QtScript برنامه های نوشته شده توسط Qt/C++ را اسکریپت پذیر نمایند. این ابزار در نسخه 4.3.0 به عنوان ابزاری مستقل معرفی شد و بعدها به عنوان بخشی از هسته Qt در آمد.

همچنین یکی دیگر از ابزارهای بسیار مفیدی که به همراه Qt منتشر می شود ابزار Qt Designer است که می توان توسط آن بدون کد نویسی و به صورت کاملا بصری اقدام به طراحی فرم نمود.

لازم به ذکر است که آخرین نگارش Qt در حال حاضر 4.4.1 می باشد که توسط Trolltech در تاریخ July 31, 2008 منتشر شده است.

در پایان بایستی به این نکته اشاره نمود که Qt برای نمایش رابط کاربری در هر پلتفرم از عمل شبیه سازی رابط کاربری استفاده می نمود که بدلیل کارائی پایین و عدم نمایش قابل قبول در نسخ اخیر از API اصلی هر سیستم عامل برای رسم کنترل های Qt و فرم ها استفاده می نماید.

Eclipse

Eclipse13 به عنوان یک پلتفرم نرم افزاری کد باز و رایگان٬ یک چارچوب نرم افزاری قابل توسعه به همراه ابزارها و یک کتابخانه ی زمان اجرا٬ جهت مدیریت٬ توسعه و توزیع نرم افزارها محسوب می شود. Eclipse توسط Java توسعه داده شده است تا بتواند برای مدیران و توسعه دهندگان نرم افزارها یک IDE قدرتمند و Cross-Platform مهیا نماید. Eclipse بر اساس نرم افزاری قدیمی تر - از شرکت IBM - به نام VisualAge14 توسعه داده شده و تحت لیسانس Eclipse Public License قرار دارد. Eclipse محصول سازمانی غیر انتفاعی15 به نام بنیاد Eclipse16 است.

در آغاز بخش کانادائی کمپانی IBM – به نام OTI17 - به دنبال راه حلی برای جایگزین نمودن محیط های توسعه نرم افزاری متعدد و ناسازگاری که توسط مشتریان این شرکت استفاده می شد٬ با یک چارچوب کاری یا محیط توسعه مجتمع که بتواند در جهت تولید مولفه های نرم افزاری که با کمترین تغییرات در پلتفرم های مورد استفاده تمامی مشتریان قابل استفاده باشد٬ دست به توسعه VisualAge زد. پروژه Eclipse بر اساس VA کلید خورد و با پیشنهاد IBM در نوامبر سال 2001 کنسرسیومی متشکل از تولید کنندگان و توسعه دهندگان نرم افزارها جهت مدیریت٬ راهبری و توسعه Eclipse تشکیل شد. در ژانویه 2004 اعضای کنسرسیوم غیر رسمی Eclipse – که متشکل از حدودا ۸۰ کمپانی نرم افزاری بود - تصمیم به تاسیس Eclipse Foundation18 به عنوان سازمانی غیر انتفاعی و مستقل٬ در عین حال ناظر و مشاور جامعه Eclipse گرفت19. در حال حاضر تمامی هزینه ها توسط پرداخت های سالیانه اعضا که بیش از ۱۸۰ کمپانی نرم افزاری و سخت افزاری است تامین می شود. همچنین سیاست ها و خط مشی های EF در هیاتی با نام ‌Board of Directors20 تعیین می شود. در این بین نام هائی از جمله AdaCore, Adobe21, AMD, Blue Age, Borland, CISCO, ERICSSON, FUJITSU, Google, HP, HITACHI, IBM, INTEL, Motorola, MySQL, NEC, NOKIA, Novell, ORACLE, Red Hat, SAP, SIEMENS, Sony Ericsson, SYBASE, Symbian, TOSHIBA به چشم می خورد22.

نکته جالب توجه قرار نگرفتن شرکت Sun Microsystems در لیست اعضای این ائتلاف می باشد٬ چرا که اساس توسعه Eclipse پلتفرم Java می باشد. اساس بروز اختلاف میان Sun و کنسرسیوم اولیه Eclipse از تعارض و تضاد میان نام Sun – به معنای خورشید – و Eclipse – به معنای گرفتگی٬ گرفتگی خورشید یا ماه – آغاز شد. Sun اعلام کرد هرگز به سازمانی که نام آن تداعی کننده گرفتگی یا مرگ خورشید باشد نخواهد پیوست. در ادامه EF پذیرفت که تغییر نام دهد اما با پافشاری IBM این موافقت به سرانجام نرسید. IBM اعلام کرد که گرفتگی به معنای ایستادگی علیه Sun نیست و هدف این بنیاد در واقع ایستادگی و گرفتگی علیه Microsoft و Visual Studio می باشد. بعدها Sun اعلام کرد بخشی از این تصمیم برای نپیوستن به EF به دلیل علاقه ی Sun برای توسعه و حفظ استقلال IDE کدباز خود به نام NetBeans23 بوده است. البته MySQL که در اوائل سال جاری توسط Sun خریداری شد در حال حاضر و پیش از آن به عنوان Solutions Member جزو اعضای این ائتلاف می باشد.24

علیرغم اینکه مشاوران حقوقی IBM‌ و بسیاری از افراد Eclipse را نام شایسته ای نمی دانستند IBM بر اصرار خود جهت استفاده از این نام ادامه داد. این بدان دلیل بود که تا پیش از آن از این نام به طور وسیعی استفاده شده بود. برای مثال اتومبیلی به نام Mitsubishi Eclipse٬ آدامس Eclipse کمپانی Wrigley و تیم فوتبال دختران Eclipse در ایالت Illinois که اتفاقا مالک دامین Eclipse.org هم بود. البته با توجه به سیاست های اخیر IBM مبنی بر ورود به دنیای کد باز٬ در نوامبر 2001 با مبلغی که تیم فوتبال دختران توان چشم پوشی از آن را نداشته باشد اقدام به خرید نام دامنه Eclipse.org نمود.25

صرف نظر از مسائلی که شرح آن گذشت٬ در حال حاضر Eclipse پروژه بسیار موفقی است که به لطف معماری توسعه پذیر و دوست داران و علاقمندان آن٬ Plug-in های داوطلبانه و کد باز بسیاری جهت تعبیه و بکارگیری انواع گوناگونی از زبان های برنامه نویسی در این IDE توسعه داده شده است26. در زمان نگارش این مقاله تعداد ۱۵۶۵ افزودنی برای این نرم افزار طراحی و پیاده سازی شده است.

همانطور که ذکر شد Eclipse تماما با Java و جهت برنامه نویسی به زبان Java٬ طراحی و توسعه داده شده است. اما علاوه بر Java و خلف آن J2EE27 برای اکثریت زبان های برنامه نویسی بسته های افزودنی به این نرم افزار وجود دارد که از آن جمله می توان به Ada, AppleScript, Assembly, Boo, C/C++, C#, Cobol, ColdFuision, Eiffel, Fortran, HTML/XHTML, JavaScript, JSP, Jython, LaTeX, MEL, Pascal, Perl, PHP, Python, Ruby, Smalltalk, SVG, XML, XUL اشاره دشت. همچنین برای برخی زبان ها مانند C/C++ و Python چندین Plug-in منتشر شده است. آخرین نگارش Eclipse نسخه 3.4 با نام Ganymede28 می باشد که در تاریخ 25 June, 2008 منتشر شده است.

در ادامه به نصب Eclipse خواهیم پرداخت29. البته ما به نصب C/C++, Perl, Python, Ruby بسنده می کنیم و مابقی زبان های مورد نیاز را به عهده مخاطب مقاله واگذار می نمائیم. مراحل نصب برای اکثر Plug-in ها تقریبا همسان است و با مقداری Googling می توانید هر پلاگینی را که بخواهید برای آن نصب کنید.

به یاد داشته باشید که: یادگیری یک IDE که بتوانید از آن برای توسعه هر زبانی استفاده کنید بسیار کم هزینه تر٬ سریعتر و آسان تر از یادگیری چندین زبان به همراه چندین IDE است. در ضمن در نظر داشته باشید IDE که مبتنی بر جاواست برخلاف سایر IDE ها که فقط در یک سیستم عامل قابل دسترسی است در هر جائی که جاوا اجرا شود در دسترس می باشد. بنابراین برای توسعه نرم افزار با هر زبانی و برای هر سیستم عاملی فقط یک ابزار نیاز دارید: Eclipse.

نصب و پیکربندی Qt/Eclipse

۱. پیش از نصب هر چیز دیگری به Java احتیاج خواهید داشت. اگر از Mac OS X استفاده می نمائید Java بصورت پیش فرض و از قبل در سیستم عامل شما نصب شده است. اما توسعه دهندگان OS X به یک بسته اضافی به نام Xcode30احتیاج دارند:

اگر کاربر ویندوز هستید به آدرس ذیل مراجعه نمائید:

http://java.sun.com/

سپس در قسمت سمت راست صفحه و در ناحیه Popular Downloads بر روی گزینه Java SE کلیک نمائید (مطابق با تصویر 1.A.).

تصویر1.A. – دریافت JDK

تصویر1.A. – دریافت JDK

در صفحه بعد بر روی Get the JDK download واقع در قسمت بالا و وسط صفحه کلیک نمائید (مطابق با تصویر 1.B.).

تصویر1.B. – دریافت JDK

تصویر1.B. – دریافت JDK

نهایتا در صفحه بعد بایستی با انتخاب نوع سیستم عامل و پذیرفتن توافقنامه میان شما و شرکت Sun به صفحه انتخاب نوع نصب – Online یا Offline – مراجعه نمائید. متاسفانه کاربران ایرانی پس از پذیرفتن متن قرار داد با پیام خطای ذیل مواجه می شوند:

Your download transaction cannot be approved. Contact Customer Service.

این بدان دلیل است که شرکت Sun بر اساس تحریم های وارده دریافت تمامی نرم افزارهای خود را برای کاربران ایرانی غیرممکن کرده است (همین اتفاق برای MySQL پس از خرید آن توسط Sun نیز رخ داده است). البته نگران نباشید می توانید با یک اکانت VPN و یا یک Proxy به دریافت آن اقدام نمائید. کافیست IP شما برای دانلود با محدوده IP های ایران و کشورهای مورد تحریم همخوانی نداشته باشد. پس حتما با روشی وارد سایت شوید که اشتباه شناسائی شوید.

در نهایت دقت نمائید که بسته های متفاوتی از Java برای نصب موجود می باشد برای مثال JRE31 که برای کاربران نهائی است که از نرم افزارهای مبتنی بر جاوا استفاده می نمایند و JDK32 برای توسعه دهندگان نرم افزارهای تحت جاوا. به همین دلیل ما هم اقدام به دریافت و نصب JDK‌ می نمائیم.

اگر کاربر OS X می باشید برای دریافت Xcode به آدرس زیر بروید:

http://developer.apple.com/tools/download/

توجه داشته باشید که برای دریافت Xcode بایستی یک Apple ID داشته باشید. دریافت آن رایگان است پس حتما ثبت نام نمائید. حجم تقریبی آخرین نسخه آن حدود 1 GB است.

نرم افزار های دریافتی را نصب نمائید.

۲. پس از نصب نرم افزارهای تشریح شده در مرحله قبل با مراجعه به آدرس ذیل اقدام به دریافت Eclipse Classic مطابق با سیستم عامل موردنظرتان نمائید (مطابق با تصویر 2.A.).

http://www.eclipse.org/downloads/
تصویر2.A. – دریافت Eclipse

تصویر2.A. – دریافت Eclipse

در صفحه بعد با انتخاب Mirror مورد نظر یا تائید Mirror از پیش تعریف شده اقدام به دریافت Eclipse نمائید.

پس از دریافت Eclipse بسته به نوع سیستم عامل و نسخه آن با فایلی مشابه eclipse-SDK-3.4-macosx-carbon.tar.gz و یا eclipse-SDK-3.4-win32.zip مواجه خواهید شد. یادآور می شویم که Eclipse احتیاجی به نصب ندارد٬ کافیست آن را از حالت فشرده خارج و اجرا کنید. برای مثال در Windows در مسیر C:\Eclipse\ و یا در Mac OS X در مسیر /Applications/Eclipse/. کافیست یک میانبر از فایل اصلی Eclipse در Desktop, Start Menu, Dock‌ و یا هر مکان دیگری ایجاد نمائید. نام فایل اصلی آن در Windows فایل eclipse.exe و در OS X فایل Eclipse با آیکنی به شکل خورشید گرفتگی می باشد. (مطابق با تصاویر 2.B. و 2.C.).

تصویر2.B. – پوشه Eclipse

تصویر2.B. – پوشه Eclipse

تصویر2.C. – اجرای Eclipse از Dock

تصویر2.C. – اجرای Eclipse از Dock

نکته بسیار مهمی که بایستی بدان توجه نمائید این است که در نام گذاری پوشه Eclipse مطلقا از فاصله – یا کلید Space – استفاده ننمائید. برای مثال اگر قصد دارید نام پوشه را “Eclipse Java” بگذارید آنرا بدین شکل نامگذاری کنید: EclipseJava بدون هرگونه فاصله ای٬ چرا که برخی از Plug-in ها با نرم افزار در این حالت ناسازگاری ایجاد می کنند. پس اگر یک Plug-in ناسازگار داشتید بد نیست در کنار سایر احتمالات نگاهی به نام پوشه Eclipse‌ تان بیاندازید هر چند که باز هم توصیه می کنیم از Space استفاده ننمائید.

۳. بهتر است یک بار جهت تائید صحت نصب و اجرای کامل مراحل طی شده Eclipse را اجرا سپس یک کد کوچک Hello World! به زبان Java ایجاد و اجرا نمائید تا یقین حاصل کنید که نرم افزار به خوبی کار می کند. پس از اجرای نرام افزار مراحل زیر را برای نوشتن اولین برنامه دنبال نمائید:

در اولین بار اجرا٬ لوگوی نرم افزار را مشاهده می نمائید (مطابق با تصویر 3.A.)٬ و متعاقبا پنجره ای با نام Workspace Launcher که از شما می خواهد مسیری را جهت ذخیره پروژه های ایجاد شده در Eclipse مشخص نمائید. با زدن کلید Browse مسیر موردنظرتان را تعیین نمائید. با چک زدن گزینه Use this as the default and do not ask again از نمایش این کادر در اجرای بعدی جلوگیری نمائید (مطابق با تصویر3.B. ) البته بعدها می توانید از طریق منوی File/Switch Workspace/Other… و یا از طریق یکی از مسیرهای زیر اقدام به تغییر مسیر پروژه هایتان نمائید:

Windows:
    Window/Preferences/General/Startup and Shutdown/Prompt for workspace on startup

Mac OS X:
    Eclipse/Preferences/General/Startup and Shutdown/Prompt for workspace on startup
تصویر3.A. – لوگوی Eclipse

تصویر3.A. – لوگوی Eclipse

تصویر3.B. – تعیین فضای کاری Eclipse

تصویر3.B. – تعیین فضای کاری Eclipse

پس از عبور از کادر بالا با محیط اصلی Eclipse‌ و منو های آن مواجه خواهید شد (مطابق با تصاویر 3.C. و 3.D.):

تصویر3.C. – محیط اصلی Eclipse

تصویر3.C. – محیط اصلی Eclipse

تصویر3.D. – منوهای اصلی Eclipse

تصویر3.D. – منوهای اصلی Eclipse

از منوی File/New دستور Java Project را اجرا نمائید. سپس در کادر محاوره ای New Java Project و در قسمت Project Name‌ اقدام به درج نام پروژه نمائید٬ آنگاه بر روی Finish‌ کلیک نمائید (مطابق با تصویر 3.E.).

تصویر3.E. – ایجاد یک پروژه جدید Java

تصویر3.E. – ایجاد یک پروژه جدید Java

با کلیک بر روی Finish مشاهده می نمائید که محیط نرم افزار دگرگون می شود و در سمت چپ صفحه در ناحیه Package Explorer پوشه ای هم نام با نام پروژه ای که در مرحله قبل تعیین نمودید تولید شده است (در پروژه فرضی ما نام پروژه JTest می باشد). چنانچه محتویات آن قابل رویت نمی باشد لیست را با کلیک بر روی دستگیره ی آن گسترش دهید تا به پوشه دیگری تحت عنوان src برسید. بر روی آن کلیک راست نمائید. در منوی باز شده دستور Package را از منوی New برگزینید (مطابق با تصویر 3.F.).

تصویر3.F. – نحوه ی ایجاد یک Package جدید

تصویر3.F. – نحوه ی ایجاد یک Package جدید

سپس پنجره ای تحت عنوان New Java Package به نمایش در می آید. در کادر Name نام Package مورد نظرتان را وارد نمائید. دقت نمائید که نام Package با حروف کوچک آغاز شود در غیر اینصورت Eclipse در ناحیه بالای صفحه٬ هشداری را مبنی بر نامعتبر بودن نامگذاری نمایان خواهد ساخت. پس از تعیین نام بر روی Finish کلیک نمائید (مطابق با تصویر 3.G.).

تصویر3.G. – تعیین نام یک Package جدید

تصویر3.G. – تعیین نام یک Package جدید

مشاهده می نمائید که پس از کلیک بر روی دکمه Finish در پوشه src یگ گره هم نام با نام Package شما ایجاد خواهد شد (در پروژه ما این نام test می باشد). سپس بر روی نام Package جدید مجددا کلیک راست و این بار از منوی New گزینه Class را انتخاب نمائید (مطابق با تصویر 3.H.).

تصویر3.H. – نحوه ی ایجاد یک Class جدید

تصویر3.H. – نحوه ی ایجاد یک Class جدید

پس از صدور دستور Class کادری تحت عنوان New Java Class جهت تنظیم نام و تعیین سایر خصوصیات کلاس مورد نظر به نمایش در می آید. این بار برخلاف حالت قبل جهت تعیین نام کلاس در کادر Name بایستی نام کلاس با حروف بزرگ شروع شود در غیر اینصورت باز هم با هشدار Eclipse مواجه خواهید شد. پس از تعیین نام مورد نظر بر روی دکمه Finish کلیک نمائید (مطابق با تصویر 3.I.).

تصویر3.I. – تعیین نام و خصوصیات یک Class جدید

تصویر3.I. – تعیین نام و خصوصیات یک Class جدید

در نهایت پس از پشت سر گذاشتن تمامی مراحل یاد شده با ناحیه سفید رنگی مواجه خواهید شد که کدهای ذیل در آن درج شده است:

package test;

public class Hello {
}

چنانچه ناحیه سفید رنگ (ناحیه کدها) جای کمی برای نمایش کدها دارد می توانید پنل Welcome در سمت راست صفحه نمایش را ببندید٬ به این دلیل که معمولا بدان نیازی ندارید. همچینین اگر نیاز دارید سایز یا نوع قلم مربوط به کدها را تغییر دهید می توانید از مسیر زیر اقدام نمائید:

Windows:
    Window/Prefrences/General/Appearance/Color and Fonts/Basic/Text Font

Mac OS X:
    Eclipse/Prefrences/General/Appearance/Color and Fonts/Basic/Text Font

قلم پیش فرض برای Mac OS X قلم Monaco و برای Windows قلم Courier New می باشد.

به هر صورت کد کلاس Hello را به شکل ذیل تصحیح نمائید:

package test;

public class Hello {
    public static void main(String[] args) {
        System.out.println(Hello, World!);
    }
}

حال جهت اجرای کد در ویندوز کلید Ctrl+F11 و در Mac OS X کلیدهای Shift+Command+F11 را بفشارید. همچنین می توانید از منوی Run دستور Run را صادر نمائید و یا بر روی آیکن Run در نوار ابزار کلیک نمائید (مطابق با تصویر 3.J.).

تصویر3.J. – اجرای پروژه از نوار ابزار

تصویر3.J. – اجرای پروژه از نوار ابزار

پس از اولین بار اجرا با پنجره ای تحت عنوان Run As مواجه خواهید شد. در این پنجره پروفایل مربوط به نحوه ی اجرای پروژه را بر روی Java Application تنظیم و بر روی OK کلید نمائید (مطابق با تصویر 3.K.).

تصویر3.K. – تعیین پروفایل تنظیمات اجرای پروژه

تصویر3.K. – تعیین پروفایل تنظیمات اجرای پروژه

لازم به ذکر است که این پنجره فقط یک بار و آن هم در اولین بار اجرای پروژه نمایان می شود. جهت تغییر تنظیمات آن می توانید از فلش رو به پائین سمت راست دکمه Run در نوار ابزار و یا از Run As و Run History واقع در منوی Run استفاده نمائید.

پس از اجرای پروژه بایستی عبارت Hello, World! را در پنل Console واقع در مجموعه پنل های پائینی نرم افزار مشاهده نمائید (مطابق با تصویر 3.L.).

تصویر3.L. – اجرای پروژه

تصویر3.L. – اجرای پروژه

بسیار خب٬ تبریک می گوئیم. اولین – و شاید هم آخرین – پروژه جاوای خود را در Eclipse به پایان رساندید. مشخص شد که تمامی مراحل نصب و پیکربندی تا اینجا به خوبی پیش رفته است. پس هم اکنون نوبت نصب سایر Plug-in ها است.

۴. قصد داریم Plug-in مربوط به C/C++ را به IDE اضافه نمائیم. چندین Plug-in برای C/C++ بر روی Eclipse وجود دارد. ما قصد داریم از CDT استفاده نمائیم. این عمل را به سه روش می توان انجام داد. ما روش اول را جهت نصب CDT بکار می گیریم و روش دوم و سوم را برای سایر Plug-in ها بکار می بریم. البته هر سه روش بسیار به هم نزدیک می باشند. روش اول مختص Plug-in هائی است که بصورت رسمی از سوی EF برای Eclipse منتشر می شود. روش دوم برای برای نصب Online و روش سوم برای نصب Offline است. هر چند که استفاده از روش سوم به هیچ وجه توصیه نمی شود. چرا که اکثر Plug-in ها در روش نصب Offline برخی از قابلیت های خود را ارائه نمی دهند. CDT جزو Plug-in های رسمی Eclipse است شما می توانید هر کدام از سه روش نصب را برای آن بکار بگیرید. ما از همان روش اول آغاز می کنیم.

از منوی Help گزینه Software Updates را انتخاب نمائید تا صفحه Software Updates and Add-ons باز شود. سپس زبانه Available Software را انتخاب کنید (مطابق با تصویر 4.A.).

تصویر4.A. – پنجره Software Updates

تصویر4.A. – پنجره Software Updates

پس از رفتن به زبانه Available Software با لیستی مواجه می شوید که در دو ستون با نام های Name و Version مرتب شده است. در ستون Name در کنار نام هر یک از آیتم ها یک کادر بدون تیک و یک فلش با اشاره به جهت راست را می یابید. با کلیک بر روی فلش مربوط به گزینه Ganymede Update Site٬ لیست را توسعه دهید. با توسعه لیست کلمه Pending… ظاهر و چند لحظه ای طول می کشد تا نام افزودنی های رسمی نرم افزار نمایان شود. سپس از این لیست گزینه C and C++ Development را به همراه تمامی زیر مجموعه های آن بر گزینید (مطابق با تصاویر 4.B. و 4.C.).

تصویر4.B. – در حال فراحوانی لیست افزودنی های رسمی

تصویر4.B. – در حال فراحوانی لیست افزودنی های رسمی

تصویر4.C. – انتخاب افزودنی CDT

تصویر4.C. – انتخاب افزودنی CDT

با کلیک بر روی کلید Install… واقع در سمت راست پنجره٬ پنجره ای تحت عنوان Progress Information نمایان می شود (مطابق با تصویر 4.D.). در حال حاضر نرم افزار مشغول بررسی مشکلات احتمالی٬ در صورت فقدان نیازمندی های Plug-in مربوطه می باشد. چنانچه مسئله ای وجود داشته باشد Eclipse شما را مطلع می کند. در غیر اینصورت در پنجره ای دیگر نام و نسخه ماژول های انتخابی جهت نصب را مشاهده می نمائید (مطابق با تصویر 4.E.). با کلیک بر روی دکمه Next قرارداد مربوط به استفاده از Plug-in میان شما و توسعه دهنده آن٬ به نمایش در خواهد آمد (مطابق با تصویر 4.F.). با قبول قرارداد بر روی Finish کلیک نمائید.

تصویر4.D. – در حال بررسی نیازمندی های Plug-in‌ مربوطه

تصویر4.D. – در حال بررسی نیازمندی های Plug-in‌ مربوطه

تصویر4.E. – نمایش و تائید نسخه٬ حجم و سایر توضیحات ماژول های انتخاب شده

تصویر4.E. – نمایش و تائید نسخه٬ حجم و سایر توضیحات ماژول های انتخاب شده

تصویر4.F. – قبول قرارداد استفاده از Plug-in

تصویر4.F. – قبول قرارداد استفاده از Plug-in

در ادامه فرآیند نصب٬ پنجره Install با نمایش نام بسته های در حال نصب به همراه میزان پیشرفت٬ دریافت و نصب آن ها به نمایش در می آید (مطابق با تصویر 4.G.). می توانید با کلیک بر روی دکمه Details جزئیات فرآیند دریافت و نصب را مشاهده نمائید (مطابق با تصویر 4.H.) و یا با کلیک بر روی دکمه ی Run in Background عمل دریافت و نصب را در پس زمینه انجام دهید (مطابق با تصویر 4.I.).

تصویر4.G. – نمایش پیشرفت مراحل دریافت و نصب Plug-in

تصویر4.G. – نمایش پیشرفت مراحل دریافت و نصب Plug-in

تصویر4.H. – جزئیات مراحل نصب

تصویر4.H. – جزئیات مراحل نصب

تصویر4.I. – نمایش پیشرفت مراحل نصب در پس زمینه

تصویر4.I. – نمایش پیشرفت مراحل نصب در پس زمینه

پس از اتمام مراحل دریافت و نصب Plug-in موردنظر٬ Eclipse با نمایش پیامی مبنی بر تائید اعمال تغییرات ایجاد شده توسط Plug-in٬ پیشنهاد می کند تا نرم افزار را Restart‌ نمائید. با انتخاب گزینه Yes این عمل را تائید نمائید (مطابق با تصویر 4.J.).

تصویر4.J. – تائید اعمال تغییرات

تصویر4.J. – تائید اعمال تغییرات

پس از اعمال تغییرات و اجرای مجدد Eclipse٬ احتمالا متوجه تغییر ظاهر صفحه آغازین خواهید شد (مطابق با تصویر 4.K.). این تغییر اثر افزودنی CDT‌ است و نشان دهنده نصب موفقیت آمیز آن است. البته لزوما هر افزودنی که نصب می کنید چنین تغییری ایجاد نمی نماید. جهت بررسی صحت نصب Plug-in مورد نظر می توانید از منوی Help٬ دستور Software Updates… را صادر نمائید. با رفتن به زبانه Installed Software می توانید Plug-in های نصب شده را به همراه نسخه آن مشاهده نمائید (مطابق با تصویر 4.L.). البته می توانید از مسیر Help/About در Windows و از مسیر Eclipse/About‌ در OS X به جزئیات بیشتری از Eclipse و Plug-in های آن دسترسی پیدا کنید.

تصویر4.K. – تغییر صفحه آغازین پس از نصب CDT

تصویر4.K. – تغییر صفحه آغازین پس از نصب CDT

تصویر4.L. –  نمایش Plug-in های نصب شده به علاوه شماره نسخ آن

تصویر4.L. – نمایش Plug-in های نصب شده به علاوه شماره نسخ آن

همچنین بهتر است جهت آگاهی از نصب صحیح CDT‌ و تائید آن٬ یک کد HW به زبان C/C++ به همراه Eclipse نوشته و آن را کامپایل نمائید. البته در حال حاضر امکان کامپایل هیچگونه کدی را با CDT نخواهید داشت چرا که CDT هیچگونه کامپایلری برای C/C++‌ را به همراه ندارد و بایستی از یک کامپایلر جهت کامپایل کدها استفاده نمائید. در OS X با نصب Xcode این کامپایلر در اختیار شما قرار گرفته است اما بدلیل اینکه در ویندوز هیچگونه کامپایلری از قبل وجود ندارد این عمل را در مرحله پایانی انجام می دهیم.

۵. بسیار خب٬ حال نوبت نصب سایر Plug-in ها است. روش نصب برای اکثر Plug-in هائی که برای Eclipse موجود می باشد تقریبا یکسان است. همچنین اختلاف روش های دوم و سوم بسیار ناچیز است اما بهتر است جهت نصب Plug-in ها تا آن جا که مقدور است از روش دوم استفاده شود. به این اختلاف در ادامه اشاره می نمائیم.

از منوی Help دستور Software Updates… را صادر نمائید. در پنجره گشوده شده اطمینان حاصل نمائید که در زبانه Available Software قرار دارید. دکمه Add Site… را کلیک نمائید تا کادر Add Site نمایان شود. در کادر Add Site و در قسمت Location بایستی URL بسته مورد نظر جهت نصب را وارد نمائید (مطابق با تصویر 5.A.). معمولا با مراجعه به وب سایت رسمی Plug-in ها که اتفاقا اکثرا در Sourceforge33‌ میزبانی می شوند می توانید این آدرس را استخراج نمائید.

تصویر5.A. – نصب Plug-in ها با استفاده از قابلیت Add Site

تصویر5.A. – نصب Plug-in ها با استفاده از قابلیت Add Site

تنها تفاوتی که در روش نصب Online و Offline مشاهده می شود از تنظیمات این کادر سرچشمه می گیرد. در این کادر شما می توانید یک HTTP URL٬ یک آدرس در شبکه٬ آدرس پوشه ای از هارد درایو کامپیوترتان و یا یک فایل فشرده که حاوی بسته های مورد نظر باشد را وارد نمائید. جهت استفاده از روش Online٬ آدرس بسته موردنظر را بر روی وب وارد نمائید. برای نصب Offline بایستی ابتدا اقدام به دریافت بسته های مورد نظر از وب سایت توسعه دهنده آن نموده سپس آن را در یک پوشه در کامپیوترتان ذخیره نمائید آنگاه در کادر Add Site با کلیک بر دکمه ی Local… اقدام به مشخص نمودن آدرس آن نمائید. چنانچه کل بسته شما یک فایل .zip و یا .jar‌ است می توانید از دکمه Archive… بدین منظور استفاده نمائید.

آدرس نصب Online بسته های موردنظر ما به شرح ذیل می باشد:

CDT[^34] (C/C++)
http://download.eclipse.org/tools/cdt/releases/ganymede
این Plug-in را در مرحله قبل نصب نمودیم. چنانچه قصد نصب آن به روش دوم یا سوم را داشتید می توانید از این URL استفاده نمائید.
EPIC[^35] (Perl[^36])
http://e-p-i-c.sf.net/updates
http://e-p-i-c.sf.net/updates/testing
از این Plug-in جهت توسعه Perl بر روی Eclipse استفاده می نمائیم. جهت دریافت نسخه نهائي از آدرس اول و یا دریافت آخرین نسخه آزمایشی از آدرس دوم استفاده نمائید.
PyDev[^38] (Python[^39]/Jython[^40])
http://pydev.sourceforge.net/updates/
جهت توسعه Python نسخه 2.3, 2.4 و یا 2.5 همچنین Jython نسخه 2.1 بکار می رود.
توضیح اینکه Jython یک پیاده سازی از Python است که بر اساس Java به وجود آمده است٬ مانند IronPython[^37] که بر اساس .NET توسعه داده شده است.
RDT[^42] (Ruby[^43]/Ruby on Rails[^44])
http://updatesite.rubypeople.org/release
http://updatesite.rubypeople.org/integration
http://updatesite.rubypeople.org/nightly
جهت توسعه Ruby و Ruby on Rails بکار می رود. آدرس اول جهت نسخه نهائی و پایدار نرم افزار٬ آدرس دوم جهت دریافت آخرین نسخه آزمایشی و آدرس سوم جهت دسترسی به آخرین نسخه توسعه داده شده بصورت روزانه می باشد که نصب این نسخه بر خلاف نسخه آزمایشی که از پایداری قابل قبولی برخوردار است٬ بدلیل وجود ایرادات فراوان توصیه نمی شود.
Ruby نیز یک اقتباس شی گرا از Perl است با ویژگی هائی شبیه Smalltalk[^41].
Ruby on Rails نام یک چارچوب کاری توسعه نرم افزار وب بر اساس Ruby‌ است.

آدرس هر یک از Plug-in های مورد نظرتان را به صورت تک تک در کادر Add Site‌ اضافه نمائید تا بصورت یک جا اقدام به نصب آن ها نمائید٬ مدت زمانی کوتاه طول می کشد تا بسته ها به همراه سایر مولفه های آن برای نصب شناسائی شوند (مطابق با تصویر 5.B.). باقی مراحل نصب با روش پیشین برای نصب CDT یکسان است٬ بنابراین از شرح آن خودداری می نمائیم.

تصویر5.B. – نصب Plug-in ها با استفاده از قابلیت Add Site

تصویر5.B. – نصب Plug-in ها با استفاده از قابلیت Add Site

۶. پس از نصب سایر Plug-in ها خاطر نشان می شویم که شما فقط می توانید کدهای مربوط به زبان های موردنظرتان را ایجاد٬ ویرایش و یا ذخیره نمائید. جهت تست و اجرای آن ها بایستی کامپایلر یا مفسر آن ها از قبل در سیستم شما نصب شده باشد. جهت نصب هر یک از مفسرهای مورد نیاز٬ بسته به نوع سیستم عامل تان به آدرس های ذیل مراجعه نمائید:

Perl
    http://www.activestate.com/Products/activeperl/

Python
    http://www.python.org/download/

Jython
    http://www.jython.org/Project/download.html

Ruby
    http://www.ruby-lang.org/en/downloads/

Ruby on Rails
    http://www.rubyonrails.org/down

لازم به یادآوری است که در Mac OS X – Leopard آخرین نسخه هر یک از مفسرهای مورد نیاز از قبل نصب شده است. جهت آگاهی از نسخه نصب شده می توانید از روشی که در ادامه می آید استفاده نمائید.

ابتدا از Applications/Utilities/ برنامه Terminal را اجرا نمائید. سپس دستوارت زیر را اجرا نمائید:

$ perl –v

$ ruby –v

$ python
>>> raise SystemExit
تصویر6.A. – دستورات لازم جهت آگاهی از نسخه مفسرهای Perl, Python, Ruby

تصویر6.A. – دستورات لازم جهت آگاهی از نسخه مفسرهای Perl, Python, Ruby

برخی از مفسرها احتیاج دارند که برای کار با Eclipse٬ بدان معرفی شوند. برای مثال Python و Jython از این گونه است.

در ویندوز از منوی Window و در OS X از منوی Eclipse گزینه Preferences را انتخاب نمائید. سپس از منوی سمت راست نرم افزار مسیر Pydev/Interpreter – python را دنبال نمائید (مطابق با تصویر 6.B.). آنگاه بر روی New…‌ کلیک نمائید. تا کادر Open باز شود. سپس در کادر باز شده٬ فایل مفسر Python را از مسیری که نصب نموده اید انتخاب نمائید. نام این فایل در ویندوز python.exe‌ است. در Mac OS X از مسیری مشابه مسیر زیر بدان دسترسی خواهید داشت. نام این فایل python2.5 است. (مطابق با تصویر 6.C.):

/Library/Frameworks/Python.framework/Versions/2.5/bin/python2.5
تصویر6.B. – تنظیمات مفسر Python

تصویر6.B. – تنظیمات مفسر Python

تصویر6.C. – انتخاب مفسر Python

تصویر6.C. – انتخاب مفسر Python

پس از انتخاب مفسر Python٬ نرم افزار Eclipse کتابخانه های موردنظر آن را شناسائی می نماید و در پنجره ای از شما جهت افزودن مسیرهای یاد شده به مسیرهای مورد شناسائی نرم افزار تائید می خواهد (مطابق با تصویر 6.D.). با تائید آن به پنجره تنظیمات مفسر Python باز می گردید. این بار پنجره را با ظاهری متفاوت مشاهده می نمائید (مطابق با تصویر 6.E.).

تصویر6.D. – افزودن کتابخانه های مورد نظر به مسیر نرم افزار

تصویر6.D. – افزودن کتابخانه های مورد نظر به مسیر نرم افزار

تصویر6.E. – تنظیمات مفسر پس از اعمال تغییرات

تصویر6.E. – تنظیمات مفسر پس از اعمال تغییرات

همین روند را می توانید برای پیکربندی Jython‌ و یا هر مفسر دیگری که بدان نیاز دارد به کار گیرید.

۷. خب٬ حال نوبت نصب Qt به همراه GCC Compiler است. در Linux این Compiler ابزار اصلی توسعه است و معمولا آن را جزو ابزارهای سیستم عامل تان می یابید. در Mac OS X نیز با نصب Xcode نسخه Binary آن بر روی سیستم تان نصب می شود. Eclipse بصورت خودکار از آن برای کامپایل C/C++ استفاده می نماید. در ویندوز بایستی از نسخه پورت شده آن با نام MinGW34 استفاده نمائید. به هر صورت MinGW به همراه Qt نصب خواهد شد.

ابتدا مطابق سیستم عامل تان اقدام به دریافت Qt و Qt Eclipse Integration نمائید.

http://trolltech.com/downloads/opensource تمامی دانلود ها
http://trolltech.com/developer/downloads/qt/windows نسخه Windows
http://trolltech.com/developer/downloads/qt/mac نسخه Mac OS X
http://trolltech.com/developer/downloads/qt/x11 نسخه X11 برای سیستم عامل های بر پایه نسل Unix شامل:
Conectiva, Debian, FreeBSD, Mandriva, Red Hat, Slackware, Novell/SuSE, Blastwave.org (for the OpenSolaris community)
http://trolltech.com/developer/downloads/qt/eclipse-integration-download Plug-in مجتمع سازی Qt با Eclipse برای Windows و Linux

دقت کنید که در آدرس های فوق الذکر اقدام به دریافت فایل های Binary یا در واقع کامپایل شده نمائید چرا که تمامی دریافت ها با سورس کد عرضه می شوند و در صورت دریافت سورس کد٬ فرد توسعه دهنده خود ملزم به کامپایل Qt خواهد بود که عمل نسبتا دشواری محسوب می شود.

راهنمائی این که در نام فایل های سورس کد کلمه ی src به چشم می خورد. البته به دلیل تفاوت در توزیع های Linux٬ هیچ فایل Binary برای آن عرضه نشده است. بلکه کامپایل آن بر عهده خود توسعه دهنده است. راهنمائی دیگر اینکه برای ویندوز فایل های با پسوند .exe (Installer) را دریافت نمائید نه فایل با پسوند .zip را. و برای OS X فایل با پسوند .dmg (Disk Image) را نه فایل های .tar.gz را٬ چرا که فایل های فشرده فقط حاوی سورس کد هستند.

متاسفانه در حال حاضر به دلیل فقدان نسخه ای از Qt Eclipse Integration برای OS X‌ امکان مجتمع سازی Qt با Eclipse موجود نمی باشد. البته این بدان معنا نیست که شما نتوانید Qt را بر روی OS X کامپایل نمائید. فقط نمی توانید Qt را با Eclipse مجتمع نمائید. البته بر پایه اظهارات یکی از اعضای تیم توسعه در حال حاضر مشکلاتی جهت پیاده سازی آن در Eclipse نسخه Mac وجود دارد و جهت انتشار نسخه بعدی٬ پشتیبانی از کاربران Mac OS X قطع یقین جزو اولویت های مورد توجه می باشد35.

بنابراین ادامه مراحل نصب و پیکربندی را فقط برای Windows تشریح خواهیم نمود. در ضمن نصب Qt در Mac OS X بسیار راحت تر از Windows صورت می پذیرد پس آن را به عهده مخاطب مقاله می گذاریم.

پس از دریافت Qt و Qt Eclipse Integration اقدام به نصب آن ها می نمائیم. برای مثال فایل نصب Qt در ویندوز چیزی مشابه qt-win-opensource-4.4.1-mingw.exe می باشد. آن را اجرا نمائید و مدتی را جهت استخراج و تائید صحت سلامت فایل های مورد نصب صبر نمائید. در Wizard گشوده شده مراحل را مطابق تنظیماتی که مایل هستید دنبال نمائید. تنها نکته ای که در نصب Qt نیاز به تشریح دارد تظیمات مربوط به کامپایلر MinGW‌ است. پس از پشت سر گذاشتن سایر تنظیمات برنامه نصب از شما می خواهد محلی که کامپایلر MinGW در آن قرار دارد را مشخص نمائید (مطابق با تصویر 7.A.). چنانچه از قبل نسخه ای از آن در سیستم تان نصب شده است برنامه نصب را بدان مسیر راهنمائی نمائید. در غیر اینصورت با چک زدن گزینه Download and install minimal MinGW installation. اقدام به تعیین مسیری جهت نصب آن بنمائید (مطابق با تصویر 7.B.).

تصویر7.A. – تعیین محلی که MinGW از قبل در آن جا نصب شده است

تصویر7.A. – تعیین محلی که MinGW از قبل در آن جا نصب شده است

تصویر7.B. – تعیین محل نصب نسخه جدیدی از MinGW

تصویر7.B. – تعیین محل نصب نسخه جدیدی از MinGW

دقت نمائید که پس از چک زدن گزینه فوق الذکر٬ برنامه نصب بصورت کاملا خودکار و پیش از نصب Qt اقدام به دریافت و نصب MinGW می نماید. پس از قبول توافق نامه استفاده MinGW در مرحله بعد بایستی با انتخاب یک Mirror‌ اقدام به دریافت فایل نصب آن نمائید. همچنین قادر به در یافت سورس کد MinGW‌ نیز می باشید که البته برای کار با Qt و یا کامپایل کدهای C++ بدان نیازی نخواهید داشت (مطابق با تصویر 7.C.).

تصویر7.C. – تعیین Mirror برای دریافت MinGW

تصویر7.C. – تعیین Mirror برای دریافت MinGW

چنانچه مایل به نگهداری فایل نصب MinGW می باشید برنامه نصب آن را در پوشه ای که جهت نصب Qt مشخص نموده اید ذخیره می نماید. برای مثال این مسیر می تواند به صورت C:\Qt\4.4.1\downloads\ باشد. برنامه نصب در این مسیر دو فایل برای مثال تحت عنوان MinGW-3.4.2.mirrors‌ و MinGW-3.4.2.exe تشکیل می دهد که اولی یک فایل متنی جهت نگهداری آدرس Mirror‌ های فایل نصب MinGW است و دومی فایل نصب آن است پس از اتمام دریافت٬ برنامه نصب این پوشه را به همراه تمامی محتویات آن حذف می نماید. پس اگر قصد دارید فایل نصب MinGW را بردارید پس از دریافت کامل آن سریعا یک کپی از آن را در مکان دیگری ایجاد نمائید.

مابقی مراحل نصب بسیار مشخص و واضح می باشد. پس از نصب Qt‌ نوبت به نصب Qt Eclipse Integration می باشد. نکته ای که یادآوری آن الزامیست این است که این بسته را بایستی همیشه پس از نصب CDT نصب نمود چرا که پیش نیاز کار با C++/Qt در Eclipse افزودنی CDT‌ است. به هر صورت نام فایل نصب چیزی مشابه qt-eclipse-integration-win32-1.4.1.exe می باشد و نصب آن نیز براحتی صورت می پذیرد. در این مرحله تنها کاری که انجام می دهید مشخص نمودن پوشه ای جهت نصب QtEI٬ و پس از آن مشخص نمودن محل Eclipse و پوشه bin کامپایلر MinGW برای برنامه نصب است (مطابق با تصاویر 7.D. و 7.E.). پس از نصب آن می توانید Eclipse را اجرا نمائید. حال تمامی ابزارهای کار شما آماده اند. فقط بهتر است تک تک آن ها را تست نمائید. در گام بعدی قصد پرداختن به این مهم را داریم.

تصویر7.D. – تعیین محل نصب Qt Eclipse Integration

تصویر7.D. – تعیین محل نصب Qt Eclipse Integration

تصویر7.E. تعیین محل نصب Eclipse و پوشه bin کامپایلر MinGW برای برنامه نصب Qt Eclipse Integration

تصویر7.E. تعیین محل نصب Eclipse و پوشه bin کامپایلر MinGW برای برنامه نصب Qt Eclipse Integration

تصویر7.F. – صفحه آغازین Eclipse پس از نصب Qt Eclipse Integration

تصویر7.F. – صفحه آغازین Eclipse پس از نصب Qt Eclipse Integration

۸. جهت تائید نصب صحیح سایر Plug-in ها و همچنین مشاهده شماره نسخه آن ها٬ همانطور که قبلا توضیح داده شد؛ یک بار دیگر از آدرس Help/Software Updates…/Installed Software اقدام نمائید.

بطور یقین بهترین اقدام ایجاد یک پروژه HW جدید برای هر Plug-in است تا مطمئن شوید که Plug-in ها به خوبی کار می کنند. در ضمن جهت تست مفسرهای نصب شده بهتر است پروژه هایتان را از داخل Eclipse اجرا نمائید. علاوه بر این کاربران برخی Plug-in ها مانند CDT و یا QtEI در اولین بار اجرا مشکلاتی را تجربه می نمایند. در ادامه به تشریح این مسائل می پردازیم. پس بهتر است از انجام آزمایش HW صرفنظر ننمائید.

جهت تست CDT٬ اقدام به ایجاد یک پروژه C++ از مسیر File/New/Project…/C++/C++ Project نمائید. در کادر بعدی و در قسمت Project Name نام پروژه را تعیین نمائید. همچنین در قسمت Executable واقع در ناحیه Project types می توانید یک پروژه HW آماده که از قبل نوشته شده است را ایجاد نمائید٬ اما بهتر است در عوض ایجاد این نوع پروژه یک پروژه خالی ایجاد نمائید چرا که تنظیمات پروژه HW از قبل انجام شده است و عموما بدون هیچ مسئله ای اجرا می شود. از آن جا که هدف ما از ایجاد یک پروژه خالی٬ رفع مشکلات احتمالی است پس گزینه Empty Project را انتخاب و بر روی Finish‌ کلیک نمائید (مطابق با تصویر 8.A.).

در پنل Project Explorer بر روی نام پروژه تان کلیک راست نموده٬ از منوی New دستور Source File را صادر نمائید. سپس در کادر گشوده شده و در کادر Source File نام فایل C++ را با پسوند .cpp تعیین نمائید. در کادر Template گزینه Default C++ source template و یا گزینه را برگزینید. تفاوت گزینه ها در کادر Template مربوط به نحوه ایجاد مستندات در فایل مورد نظر می باشد (مطابق با تصویر 8.B.).

تصویر8.A. – ایجاد یک پروژه C++

تصویر8.A. – ایجاد یک پروژه C++

تصویر8.B. – ایجاد یک فایل سورس C++

تصویر8.B. – ایجاد یک فایل سورس C++

حال کد زیر را در فایل ایجاد شده درج نمائید:

#include <iostream>

using namespace std;

int main() {
    cout << "Hello, World!";
    return 0;
}

اکنون نوبت اجرای کد می باشد؛ پس کد را اجرا نمائید. به احتمال زیاد با پیام خطائی تحت عنوان Launch faild. Binary not found. از سوی Application Launcher مواجه خواهید شد (مطابق با تصویر 8.C.).

تصویر8.C. – خطا در اجرای کدهای C, C++

تصویر8.C. – خطا در اجرای کدهای C, C++

علت بروز خطا این است که کد باینری یا در واقع اجرائی از پروژه شما ایجاد نشده است. بایستی از منوی Project دستور Build را اجرا نمائید تا کامپایلر اقدام به ایجاد نسخه باینری کدهای شما نماید. هم اکنون می توانید پروژه را اجرا نمائید. البته در دفعات بعد چنانچه نیاز به Build مجدد پروژه باشد Eclipse بصورت خودکار این عمل را انجام می دهد (مطابق با تصویر 8.D.).

تصویر8.D. – اجرای برنامه Hello, World! در C++

تصویر8.D. – اجرای برنامه Hello, World! در C++

هم اکنون نوبت تست EPIC برای Perl می باشد. از مسیر File/New/Project…/Perl/Perl Project‌ اقدام به ایجاد یک پروژه جدید نمائید. سپس در پنل Project Explorer با کلیک بر روی پوشه پروژه از منوی New گزینه Other… را برگزینید. سپس از کادر New دستور Perl File را از پوشه Perl برگزینید. در صفحه بعد نام پروژه را با پسوند .pl تعیین نمائید. آنگاه در فایل جدید کد ذیل را درج نمائید:

print "Hello, World!";

حال نوبت اجرای کد است؛ کد را اجرا نمائید (مطابق با تصویر 8.E.).

تصویر8.E. – اجرای برنامه Hello, World! در Perl

تصویر8.E. – اجرای برنامه Hello, World! در Perl

بسیار خب٬ جهت تست Python و پلاگین آن Pydev٬ از مسیر File/New/Project…/Pydev/Pydev Project اقدام نمائید. در صفحه بعد علاوه بر نام پروژه نسخه مورد نظر Python را تعیین نمائید (مطابق با تصویر 8.F.).

تصویر8.F. – تعیین نام پروژه به همراه نسخه Python

تصویر8.F. – تعیین نام پروژه به همراه نسخه Python

پس از ایجاد پروژه جدید با کلیک راست بر روی پوشه src واقع در پوشه پروژه از منوی New دستور Pydev Package را صادر نمائید. پس از تعیین نام Package٬ یک فایل تحت عنوان init.py در آن ایجاد می شود. محتویات فایل را به شکل زیر تغییر دهید:

print "Hello, World!"

کد را اجرا نمائید (مطابق با تصویر 8.G.).

تصویر8.G. – اجرای برنامه Hello, World! در Python

تصویر8.G. – اجرای برنامه Hello, World! در Python

جهت تست RDT و Ruby نیز از مسیر File/New/Project…/Ruby گزینه Ruby Project را برگزینید. پس از تعیین نام پروژه با کلیک بر پوشه حاوی پروژه دستور Ruby File را از منوی New برگزینید. سپس فایلی با پسوند .rb ایجاد نمائید. کد HW مربوط به Ruby بسیار ساده می باشد:

puts "Hello, World!"

پس از تست موفقیت آمیز سایر Plug-in ها حال نوبت تست Qt/MinGW/QtEI می باشد. متاسفانه بدلیل این که QtEI هنوز در آغاز راه می باشد تعداد بسیار زیادی Bug در نسخه های متعدد آن موجود می باشد. احتمالا با ایجاد یک پروژه Qt هرگز موفق به اجرای آن نخواهید شد. پس با دقت تمامی مراحل را دنبال نمائید:

ابتدا از منوی File گزینه New سپس Project… را برگزینید. آنگاه در کادر New Project گزینه Qt Gui Project را از پوشه Qt انتخاب نمائید (مطابق با تصویر 8.H.). در Qt می توانید علاوه بر پروژه Gui٬ پروژه نوع Console را نیز ایجاد نمائید. به هر حال هدف ما پروژه Gui می باشد. بر روی Next کلیک نمائید. در صفحه بعد پس از انتخاب نام پروژه (نام پروژه را جهت هماهنگی با ادامه مطلب QtTest برگزینید) بر روی Finish کلیک نمائید. متاسفانه در نسخه فعلی QtEI پس از ایجاد پروژه سریعا با خطائی در پنجره Console و هشدار دیگری در پنجره Problems مواجه می شوید (مطابق با تصاویر8.I. و 8.J)36.

تصویر8.H.– ایجاد یک پروژه C++ با رابط کاربری از نوع Qt

تصویر8.H.– ایجاد یک پروژه C++ با رابط کاربری از نوع Qt

تصویر8.I. – خطا در تولید نسخه باینری پروژه Qt

تصویر8.I. – خطا در تولید نسخه باینری پروژه Qt

تصویر8.J. – هشدار Eclipse در کادر Problems

تصویر8.J. – هشدار Eclipse در کادر Problems

جهت رفع خطا بر روی پوشه محتوی پروژه در پنل Project Explorer راست کلیک٬ سپس Properties را برگزینید. در کادر Properties for QtTest از ناحیه سمت چپ صحفه زبانه C/C++ Make Project را برگزینید. سپس وارد زبانهEnvironment شوید. در ناحیه Environment variables to set متغیر PATH را انتخاب نمائید. همان طور که مشاهده می نمائید مقدار این متغیر محیطی چیزی مشابه C:\Qt\4.4.1\bin; ${env_var:PATH} می باشد (مطابق با تصویر 8.K.) که بایستی آن را به چیزی مانند آنچه در ذیل می آید تغییر دهید تا به مسیر کامپایلر اشاره نماید. با فرض نصب MinGW در شاخه پیش فرض با کلیک بر گزینه Edit آنرا به شکل زیر تغییر دهید (مطابق با تصاویر 8.L. و 8.M.):

C:\Qt\4.4.1\bin;C:\MinGW\bin;${env_var:PATH}
تصویر8.K. – نحوه تغییر مقدار متغیر محیطی PATH

تصویر8.K. – نحوه تغییر مقدار متغیر محیطی PATH

تصویر8.L. – متغیر محیطی PATH پیش از تغییر

تصویر8.L. – متغیر محیطی PATH پیش از تغییر

تصویر8.M. – متغیر محیطی PATH پس از تغییر

تصویر8.M. – متغیر محیطی PATH پس از تغییر

پس از اصلاح مسیر بر روی OK‌کلیک نمائید در پنجره بعدی باز هم بر روی OK‌ کلیک نمائید. به محض ورود مجدد به Workspace مشاهده می نمائید که اتفاقاتی در پنجره های Console و Project Explorer‌ در حال رخ دادن است. Eclipse بصورت خودکار اقدام به Build پروژه و تولید نسخه باینری آن می نماید. میزان پیشرفت این فعالیت ها در ناحیه سمت راست Status Bar نمایش داده می شود. پس از اتمام آن می توانید پروژه را اجرا نمائید.

در اولین بار اجرای پروژه با کادر محاوره ای Launch Debug Configuration Selection مواجه می شوید. این کادر از شما می خواهد که تنظیمات مربوط به Debug پروژه را تعیین نمائید. MinGW gdb Debugger را انتخاب و بر روی OK‌ کلیک نمائید (مطابق با تصویر 8.N.).

تصویر8.N. – تعیین نوع Debugger

تصویر8.N. – تعیین نوع Debugger

پس از اجرای پروژه با پنجره ای خالی مواجه خواهید شد. خب٬ شاید اجرای پروژه آن قدر هم هیجان نداشت. این بدان دلیل است که خود Eclipse کد ایجاد پنجره را تولید نموده است. پنجره را ببندید تا به محیط Eclipse بازگردید. Project Explorer را به دنبال فایلی تحت عنوان qttest.ui جستجو نمائید. این فایل حاوی کدهای XML ی می باشد که ساختار و شکل ظاهری یک فرم را به همراه کنترل های آن توصیف می نماید (مشابه XAML در .NET) و توسط QtDesigner گشوده می شود. بر روی آن دابل کلیک نمائید. مشاهده می نمائید که فرم پروژه در زبانه ای جدید گشوده می شود (مطابق با تصویر 8.O.). از سمت چپ Workspace پنل Qt C++ Widget Box را فعال نمائید. چند کنترل را از این پنل بر روی فرم درگ نمائید. برای مثال یک Text Edit٬ یک Push Button٬ Radio Button٬ Check Box٬ Command Link Button و یا یک LCD Number یا حتی یک Calendar. همانطور که مشاهده می نمائید تعداد کنترل ها بسیار متنوع می باشد. همچنین می توانید از منوی QtDesigner و زیر منوی Preview in رابط کاربری را در برخی پلتفرم ها بصورت پیش نمایش مشاهده نمائید. فایل را Save و یک بار دیگر پروژه را اجرا نمائید.

تصویر8.O. – نمائی از QtDesigner

تصویر8.O. – نمائی از QtDesigner

طراحی یک رابط کاربری برای برنامه در C/C++‌ برای افرادی که تجربه کد نویسی با آن را داشته باشند به وضوح یک کابوس محسوب می شود. اما به لطف Qt و نرم افزارهای مشابه آن این امر بسیار آسان تر صورت می پذیرد.

خب؛ قصد داریم یک برنامه Qt را که از یک Label بر روی یک فرم استفاده می نماید بدون استفاده از QtDesigner و فقط با استفاده از کد نویسی ایجاد و اجرا نمائیم. برای این کار به پروژه ای که ایجاد نمودیم باز می گردیم. سپس فایل main.cpp را بگشائید. آنگاه تمامی کدهای داخل آن را پاک نمائید سپس کد زیر را در فایل درج نمائید:

#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel *label = new QLabel("Hello, World!");
    label->show();
    return app.exec();
}

پس از اجرای کد٬ فرمی را به همراه عبارت محبوب Hello, World! مشاهده می نمائید (مطابق با تصویر 8.P.).

تصویر8.P. – اجرای پروژه Qt

تصویر8.P. – اجرای پروژه Qt

نکاتی در رابطه با Eclipse

۱. اولین نکته در کار با Eclipse این است که این نرم افزار بصورت همزمان توانائی کار با چندین پروژه را دارا می باشد. مثلا ممکن همزمان در حال کار بر روی یک پروژه C++ و یک پروژه Python باشید. از آنجا که ظاهر و چیدمان پنل ها و پنجره های Eclipse در کار با هر کدام از Plug-in ها و زبان های برنامه نویسی متفاوت است در Eclipse مفهومی با عنوان Perspective ایجاد شده است. هر زبان برنامه نویسی در Eclipse خود دارای یک Perspective جداگانه می باشد برای تغییر این Perspective در هر زمان می توانید از قسمت بالا و سمت راست پنجره Eclipse استفاده نمائید (مطابق با تصویر 8.Q.). همچنین می توانید از مسیر Window/Open Perspective/Other… اقدام به گشودن Perspective موردنظر نمائید (مطابق با تصویر 8.R.).

تصویر8.Q. – تغییر Perspective

تصویر8.Q. – تغییر Perspective

تصویر8.R. – مشاهده تمامی Perspective های موجود و تغییر آن

تصویر8.R. – مشاهده تمامی Perspective های موجود و تغییر آن

۲. بصورت پیش فرض در نرم افزار Eclipse به هیچ وجه قادر به ذخیره فایل هائی که در آنها از کاراکترهای فارسی استفاده شده است نمی باشید. جهت ذخیره کاراکترهای فارسی در فایل هایتان از یکی از مسیرهای زیر اقدام نمائید (مطابق با تصویر 9.A.):

Windows:
    Window/Preferences/General/Workspace/Text file encoding/Other/UTF-8

Mac OS X:
    Eclipse/Preferences/General/Workspace/Text file encoding/Other/UTF-8

علاوه بر این برخی مفسرها مانند Python بصورت پیش فرض نمی توانند برنامه هائی را که از کاراکترهای فارسی استفاده نموده اند اجرا نمایند (به یاد داشته باشید که تنظیم یاد شده فقط برای ذخیره فایل ها است). البته برای مفسر Python چندین روش وجود دارد که بتوان چنین برنامه هائی را اجرا نمود. به عنوان نمونه استفاده از راهنماهای مفسر و یا استفاده از ماژول هائی خاص در برنامه و … که تشریح آن در قالب چنین مقاله ای نمی گنجد.

جمع بندی

بی شک با اوج گرفتن رقابت میان سیستم های عامل و پلتفرم های مختلف نرم افزاری و تقسیمات گوناگی که بر اساس نیازها در بازار این نوع محصولات صورت گرفته است بسیاری از تولیدکنندگان نرم افزار با چالش تولید نرم افزارهای Cross-Platform دست و پنجه نرم می نمایند؛ که حاصل آن راه حل هائی است که با در نظر گرفتن زمان٬ نیروی انسانی و سایر هزینه های تولید سرنوشت فرآیند تولید نرم افزارها را تعیین و موفقیت یا شکست آن ها را کلید می زند. در این میان Qt یکی از راه حل های موفق تولید این گونه از نرم افزارهاست. از ویژگی های آن سهولت در یادگیری٬ کاهش زمان تولید٬ سرعت مناسب اجرا و راحتی پیاده سازی است.

فراموش ننمائید در کشورهای توسعه یافته و تبعا پیشتاز در عرصه نرم افزار یکی از عناصر تضمین اشتغال و کسب موفقیت شغلی برای توسعه دهندگان نرم افزار توانائی در تولید چنین نرم افزارهائی است. تا بدین جای کار Qt از موقعیت ویژه ای برخوردار شده است و یکی از آیتم هائی است که برای یافتن شغلی مناسب در خارج از کشور توانائی بالقوه ای به شما می بخشد.

نیم نگاهی به Qt٬ ممکن است شتاب موفقیت های شغلی و متعاقب آن زندگی شما را دگرگون سازد.

منابع و ماخذ

Molkentin, D. (2007) The Book of Qt 4: The Art of Building Qt Applications No Starch Press
Blanchette, J. & Summerfield, M. (2006) C++ GUI Programming with Qt 4 Prentice Hall PTR
Blanchette, J. & Summerfield, M. (2008) C++ GUI Programming with Qt 4 (2nd Edition) Prentice Hall PTR
http://www.mono-project.com/
http://www.cygwin.com/
http://ffmpeg.mplayerhq.hu/
http://en.wikipedia.org/wiki/Widget_toolkit
http://en.wikipedia.org/wiki/List_of_widget_toolkits
http://wiki.wxwidgets.org/WxWidgets_Compared_To_Other_Toolkits
http://www.wxwidgets.org/about/screensh.htm
http://www.wxcommunity.com/modules.php?op=modload&name=Downloads&file=index&req=viewdownload&cid=5
http://en.wikipedia.org/wiki/Mozilla_application_framework#Applications_that_use_the_framework
http://trolltech.com/company/customers
http://trolltech.com/company/customers/coolapps
http://trolltech.com/company/customers/customer-devices
http://en.wikipedia.org/wiki/Qt_(toolkit)#Applications_built_using_Qt
http://trolltech.com/company/newsroom/announcements/press.2008-01-28.4605718236
http://www.gnu.org/software/gcc/
http://www.eclipse.org/
http://www.eclipse.org/org/
http://en.wikipedia.org/wiki/Eclipse_(software)
http://en.wikipedia.org/wiki/VisualAge
http://en.wikipedia.org/wiki/Eclipse_Foundation
http://en.wikipedia.org/wiki/Object_Technology_International
http://www.eclipse.org/org/#about
http://www.eclipse.org/org/#history
http://wiki.eclipse.org/FAQ_Where_did_Eclipse_come_from%3F
http://www.eclipse.org/org/press-release/feb2004foundationpr.html
http://www.eclipse.org/org/foundation/directors.php
http://www.eclipse.org/membership/showMembersWithTag.php?TagID=strategic
http://www.adobe.com/products/flex/features/flex_builder/
http://www.eclipse.org/membership/showAllMembers.php
http://www.netbeans.org/
http://www.eweek.com/c/a/Application-Development/Eclipse-Behind-the-Name/
http://eclipse-plugins.info/eclipse/plugins.jsp
http://movielibrary.lynda.com/html/modPage.asp?ID=433
http://intercodes.wordpress.com/2007/09/01/ccpython-and-java-in-one-ide-for-mac-os-x/
http://java.sun.com/
http://developer.apple.com/tools/xcode/
http://en.wikipedia.org/wiki/Xcode
http://developer.apple.com/tools/download/
http://www.eclipse.org/downloads/
http://www.sourceforge.net/
http://download.eclipse.org/tools/cdt/releases/ganymede
http://e-p-i-c.sf.net/updates
http://e-p-i-c.sf.net/updates/testing
http://pydev.sourceforge.net/updates/
http://updatesite.rubypeople.org/release
http://updatesite.rubypeople.org/integration
http://updatesite.rubypeople.org/nightly
http://www.eclipse.org/cdt/
http://www.epic-ide.org/
http://www.perl.org/
http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython
http://pydev.sourceforge.net/
http://www.python.org/
http://www.jython.org/Project/
http://www.smalltalk.org/
http://rubyeclipse.sourceforge.net/
http://www.ruby-lang.org/en/
http://www.rubyonrails.org/
http://www.activestate.com/Products/activeperl/
http://www.python.org/download/
http://www.jython.org/Project/download.html
http://www.ruby-lang.org/en/downloads/
http://www.rubyonrails.org/down
http://trolltech.com/downloads/opensource
http://trolltech.com/developer/downloads/qt/windows
http://trolltech.com/developer/downloads/qt/mac
http://trolltech.com/developer/downloads/qt/x11
http://trolltech.com/developer/downloads/qt/eclipse-integration-download
http://www.mingw.org/
http://en.wikipedia.org/wiki/MinGW
http://labs.trolltech.com/blogs/2007/07/11/develop-qt-applications-in-eclipse/
http://wiki.eclipse.org/index.php/CDT/User/FAQ#I_am_using_a_non_gnu_compiler_and_I_get_the_following_messages:_.22Error_launching_external_scanner_info_generator_.28gcc_-E_-P_-v_-dD.22_and_.22File_not_indexed_because_it_was_not_built_.22._How_do_I_get_rid_of_them.3F

  1. بخوانید Mac OS 10 [return]
  2. http://www.mono-project.com/ [return]
  3. Rapid Application Development [return]
  4. http://www.cygwin.com/ [return]
  5. http://ffmpeg.mplayerhq.hu/ [return]
  6. Graphical User Interface [return]
  7. جهت مشاهده لیستی از WT ها و کسب اطلاعات بیشتر:

    مقایسه ای میان WT ها:

    لیست نرم افزارهائی که با wxWidgets نوشته شده اند:

    لیست نرم افزارهائی که با Mozilla Application Framework نوشته شده اند:

    لیست نرم افزارهائی که با Qt, Qtopia, Qt Embedded نوشته شده اند به همراه لیستی از مشتریان شرکت Trolltech:

    [return]
  8. http://trolltech.com/company/newsroom/announcements/press.2008-01-28.4605718236 [return]
  9. http://www.gnu.org/software/gcc/ [return]
  10. Scalable Vector Graphics استاندارد W3C برای عرضه گرافیک برداری در وب که بر پایه XML می باشد. [return]
  11. در واقع KHTML که بسیار به Gecko شرکت موزیلا نزدیک می باشد - چارچوب کاری تولید نرم افزار کد باز شرکت Apple که پایه مرورگرهای Apple Safari٬ Konqueror٬ همچنین Google Chrome به علاوه نرم افزار ها و دستگاه های قابل حمل بسیاری از جمله iPhone و Android شرکت گوگل٬ Adobe Air٬ KDE و مرورگر وب سری ۶۰ شرکت نوکیا می باشد. در حال حاضر توسط Apple, Google, Nookia توسعه داده می شود. [return]
  12. Qt Script for Applications [return]

  13. [return]
  14. از این IDE اساسا جهت توسعه Smalltalk استفاده می شده است. البته این IDE از زبان های دیگری نیز پشتیبانی می نمود. جهت کسب اطلاعات بیشتر:

    [return]
  15. not-for-profit [return]
  16. Eclipse Foundation

    [return]
  17. Object Technology International

    [return]
  18. http://www.eclipse.org/org/#about [return]
  19. [return]
  20. لیست نمایندگان کمپانی های حاضر در هیات رئیسه و سیاست گذاران Eclipse Foundation:

    [return]
  21. تکنولوژی Flex این شرکت - و سابقا Macromedia - که به خوبی از Eclipse در طراحی آن بهره جسته است.

    [return]
  22. لیست تمامی اعضای Eclipse Foundation:

    [return]
  23. http://www.netbeans.org/ [return]
  24. http://www.eweek.com/c/a/Application-Development/Eclipse-Behind-the-Name/ [return]
  25. همان [return]
  26. جهت مشاهده لیست تمامی افزودنی های Eclipse به همراه شرحی مختصر از آن ها به آدرس ذیل مراجعه نمائید:

    [return]
  27. Java Platform, Enterprise Edition [return]
  28. Ganymede:
    ۱. نام یکی از اقمار مشتری است که در هفت روز مسیر کامل خود را طی می نمایند. همچنین این قمر بزرگترین قمر منظومه شمسی محسوب می شود.
    ۲. نام مرد بسیار جوان تروجانی که توسط زئوس دزدیده و به عنوان ساقی خدایان به کوه المپیوس برده می شود.
    [return]
  29. یک آموزش ویدیوئی از نصب Eclipse:

    یک آموزش دیگر:

    [return]

  30. [return]
  31. Java Runtime Environment [return]
  32. Java Development Kit [return]
  33. http://www.sourceforge.net/ [return]

  34. [return]
  35. http://labs.trolltech.com/blogs/2007/07/11/develop-qt-applications-in-eclipse/ [return]

  36. http://wiki.eclipse.org/index.php/CDT/User/FAQ#I_am_using_a_non_gnu_compiler_and_I_get_the_following_messages:_.22Error_launching_external_scanner_info_generator_.28gcc_-E_-P_-v_-dD.22_and_.22File_not_indexed_because_it_was_not_built_.22._How_do_I_get_rid_of_them.3F
    [return]