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

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 7 12345 ... آخرآخر
نمايش نتايج 1 به 10 از 65

نام تاپيک: برنامه نویسی ویژوال در لینوکس (Qt Programing)

  1. #1
    پروفشنال a.toraby's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    Tehran
    پست ها
    971

    12 برنامه نویسی ویژوال در لینوکس (Qt Programing)

    سلام دوستان خوب من
    شاید بعضی ها یادتون رفته باشه که من یک بار دیگه هم دو ماه پیش از این اقدام به درست کردن تاپیکی شبیه به این کردم
    اما به هر حال به علت بعضی مشکلات نشد کار رو اونجا ادامه داد.
    اما حالا با یک سری اصلاحات دوباره می خام اقدام به راه اندازس همچین بحثی کنم
    تو این مدت هم کلی document نوشتم که سعی می کنم با نظم خاصی اونا رو براتون آپلود کنم
    خوب بیش از این روده درازی نمی کنم و از مدیران انجمن هم درخواست دارم از بنده حمایت کنند و ما رو تنها رها نکنند و تجربیات خودشون رو در اختیار من قرار بدن. تا این تاپیک هم به صورت حرفه ای بتونه جوابگوی نیاز ها باشه


    بدون هیچ معطلی درس ها رو آپلود می کنم. هر کسی هم سوال داره رو درواسی رو بزاره کنار

  2. 5 کاربر از a.toraby بخاطر این مطلب مفید تشکر کرده اند


  3. #2
    پروفشنال a.toraby's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    Tehran
    پست ها
    971

    پيش فرض درس اول

    آدرس درس بعدی:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    درس اول که تکراری هست و قبلاً هم شاهد اون بوده یام. اما برای انسجام مطالب دوباره اینج می زارمش

    خوب شروع می کنیم. من سعی می کنم از همون اول اول، یعنی همون جایی که خودم شروع کردم، بنویسم
    پیش نیاز های این درس:

    آشنایی با چند تا مفهوم ساده:

    هسته :
    هر سیستم عاملی شامل دو بخش اصلی هسته و پوسته است. توزیع های مختلف لینوکس بنابر کاربردهایی که برای آن ها در نظر گرفته شده است از هسته خاصی استفاده می کنند. هسته های مختلف دارای توانایی های متفاوتی هستند، مثلاً هسته های جدید تر دارای قابلیت های بهتری در رابطه با سخت افزار های جدید تر هستند. کار اصلی سیستم عامل را هسته انجام می دهد.
    پوسته :
    پوسته رابط بین کاربر و هسته سیستم عامل است. کاربر بعد از انجام عملیات ویژه ای برای ورود به سیستم به پوسته دسترسی خواهد داشت و می تواند با تایپ دستورات با هسته ارتباط برقرار کند. در حال حاضر پوسته های زیادی برای سیستم های بر پایه یونیکس توسعه داده شده اند که مشهورترین و مطرح ترین آن ها عبارتند از:
    BASH, TCSH, CSH
    توزیع :
    توزیع های مختلف لینوکس از نظر نرم افزارهایی که با آنها ارائه می شوند با هم تفاوت هایی دارند. هر توزیع ممکن است همراه با هسته های متفاوتی عرضه شود. در حال حاضر صد ها توزیع مختلف از لینوکس در سرتاسر دنیا عرضه شده است که به عنوان مثال می توان از فاردیکس ایرانی نام برد. اما در عمل فقط چند توزیع شناخته شده و مطرح در دنیا وجود دارد که بقیه توزیع ها بر پایه آن ها توسعه داده شده اند. مثلاً یک توزیع مشهور و پایدار، لینوکس دبیان است. یک پروژه لینوکسی باید دارای ویژگی های منحصر به خود باشد تا به عنوان یک توزیع شناخته شود. مثلاً لینوکس سوزه بر پایه توزیع دبیان توسعه داده شده است اما به خاطر ویژگی های خاصی مثل کنترل پنل کاملاً user friendly که دارد به عنوان یک توزیع قدرتمند شناخته شده است.
    برای کسب اطلاعات کافی در مورد توزیع مورد نظر می توانید به وب سایت های زیر مراجعه کنید:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    X Window System:
    X Server یا همان X Window System پردازشی است که روی پوسته قرار می گیرد و به برنامه های X Client سرویس می دهد. یکی از مشهورترین X server های دنیا XFree86 نام دارد

    X Client:
    نرم افزار هایی هستند که به X Server نیاز دارند، از قبیل محیط دسکتاپ و پنجره ها و هر چیز دیگری که به سرویس گرافیکی احتیاج داشته باشد.
    همان طور که تا به حال ممکن است متوجه شده باشید رابطه بین X server و نرم افزارهای X client به صورت سرویس دهنده و سرویس گیرنده است. به این صورت که حتی می توان از طریق شبکه و پروتکل های مربوطه از روی یک سیستم و از طریق یک X client به X Server در حال اجرا روی سیستم دیگری متصل شد.
    Desktop Environment:
    نرم افزار Desktop Environment یک برنامه گرافیکی است که به کاربر این اجازه را می دهد تا بدون نیاز به تایپ کردن دستورات، درون پوسته، آن ها را به سادگی با استفاده از محیط گرافیکی و حرکات ماوس اجرا نماید. نمونه های پرکاربرد و معروف تر این نوع نرم افزار ها عبارتند از Gnome و KDE.
    حتماً به این نکته توجه داشته باشید که نرم افزار هایی مثل KDE و Gnome سرویس دهنده گرافیکی نیستند، بلکه خود، X Client هستند و برای اجرا شدن به X Server نیاز دارند.


    آشنایی با Qt Framework

    نرم افزار [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] که به طور اختصار KDE نامیده می شود یکی از پرکاربردترین و کامل ترین محیط های گرافیکی برای سیستم های بر پایه لینوکس است. لازم است بدانید که این محیط کاری بر اساس تکنولوژی Qt توسعه داده شده است. بنابراین به نظر می آید، برای برنامه نویسی تحت سیستم عامل لینوکس، استفاده از این محصول شرکت [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] بهترین ایده باشد.
    یه سری به سایتش بزنید. چیز های جالبی یاد می گیرید.

    قالب کاری Qt، مجموعه ای از کلاس های ++C­­­ است که کاربرد آن ها ایجاد نرم افزارهای قابل کامپایل در پلت فرم های مختلف از قبیل ویندوز، لینوکس، سولاریس و یا HP-UX می باشد. یعنی یک بار کدنویسی کنید و چندین بار کامپایل کنید. نرم افزارهای تولید شده توسط Qt قابلیت اجرا روی اکثر سیستم های لینوکس که دارای سرویس دهنده [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] می باشند را دارا هستند.

    شهرت اصلی Qt به علت multi platform بودن آن است. اما به علت قدرت بالایی که API آن دارد، تولیدکنندگان بسیاری، از آن برای توسعه نرم افزارهای Single Platform نیز استفاده کرده اند.

    نرم افزار [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] یک نمونه از نرم افزار هایی است که با استفاده از Qt برای پلت فرم ویندوز ایجاد شده است. همچنین تعداد زیادی از نرم افزارها، با کاربردهای ویژه که پیچیدگی های بسیار زیادی دارند، از قبیل برنامه های پویا نمایی سه بعدی، پردازش دیجیتال فیلم و اکتشاف گاز و نفت با استفاده از Qt ساخته شده اند. اگر شما با استفاده از Qt نرم افزاری را تحت سیستم عامل ویندوز ایجاد کرده باشید به راحتی می توانید آن را در دنیای لینوکس و مکینتاش هم به فروش برسانید، برای این کار تنها به کامپایل مجدد آن نیاز دارید.

    Qt تحت دو لیسانس متفاوت عرضه می شود. اگر قصد تولید نرم افزاری تجاری را داشته باشید باید لیسانس تجاری Qt را خریداری نمایید، اما اگر می خواهید نرم افزاری را تحت لیسانس open source تولید نمایید، می توانید از ویرایش رایگان Qt استفاده نمایید.

    علاوه بر صدها کلاس و تابعی که خود Qt در اختیار شما قرار می دهد، پروژه های متن باز زیادی هم وجود دارد که قابلیت های جدیدی را به آن اضافه می کنند. برای آشنایی با این ماژول ها به [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] بروید.

    همان طور که قبلاً اشاره شد KDE محیط کاری گرافیکی است که بر اساس تکنولوژی Qt ساخته شده است. اولین نسخه KDE در سال 1996 ارائه شد یعنی یک سال پس از عرضه نسخۀ اول Qt. بعد از آن KDE خیلی زود به یک محیط گرافیکی معروف و کارآمد بر روی پلت فرم های لینوکس تبدیل شد. در طی چندین سال کلاس های زیادی نیز ایجاد شدند که اکثر آن ها خواص خود را از یک یا چند کلاس Qt به ارث برده اند. شما می توانید براحتی با استفاده از کلاس های Qt نرم افزار خود را تولید کنید، ولی در صورتی که کلاس های KDE را به کار برید نرم افزار شما با محیط کاری KDE هماهنگی بیشتری خواهد داشت.

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

    در این جا تعریف علمی تری از Widget بیان می کنیم. به هر کلاسی که از کلاس QWidget ارث بری داشته باشد Widget گفته می شود. اگر با Java آشنایی داشته باشید یقیناً با مفهوم Widget مشکلی نخواهید داشت. در واقع همان طور که از معنای تحت الفظی این کلمه بر می آید، هر چیزی که در صفحه نمایش داده می شود یک Widget (چیز) است. کلاس QWidget شامل پنجره های قابل نمایش می باشد. با استفاده از متد های درون این کلاس می توان پنجره ها را مدیریت کرد و عملکرد های متناسب با وظایف برنامه را در رابطه با رویداد های موشواره و صفحه کلید تعیین کرد. به عنوان مثال می توان خواص خود Widgwet ها را با توجه به رویداد های رخ داده تغییر داد. مثلاً رنگ زمینه یک پنجره یا موقعیت آن در صفحه نمایش و یا اندازه آن را تغییر داد. شما می توانید در برنامه خود از Widget های موجود در Qt یا KDE استفاده نمایید ویا حتی با استفاده از کلاس QWidget چیزهای جدیدی متناسب با نیاز های خود ایجاد کنید و به کار برید. به خاطر داشته باشید که هر گاه نام یک کلاس با حرف Q شروع شده باشد، می تواند نشان دهنده این مطلب باشد که این کلاس مطعلق به قالب کاری Qt است و اگر با حرف K شروع شده باشد به احتمال زیاد مربوط به کلاس های KDE می شود.

    در شکل زیر ساختار یک برنامه ایجاد شده در محیط KDE را مشاهده می کنید:



    در برنامه نویسی برای محیط گرافیکی KDE، بیشتر با لایه های دوم و سوم سرو کار داریم. در واقع کار Qt هم، همین است. یعنی Qt ما را قادر می سازد بدون نیاز به پرداختن به لایه های پایین تر و با استفاده از توابعی که در لایه های بالایی در اختیار ما هست به برنامه نویسی بپردازیم. برنامه های تولید شده توسط ما در واقع همان بالاترین لایه، یعنی Application را تشکیل می دهند.

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

    1. لایه System:

    این لایه پایین ترین سطحی است که نرم افزار های کاربردی به آن دسترسی دارند. در این سطح فراخوان های سیستمی، که مجموعه ای از توابع هسته سیستم عامل هستند در اختیار برنامه نویس قرار می گیرند. به عنوان مثال می توان از توابع مربوط به سیستم فایل نام برد. از آن جا که هسته لینوکس توسط زبان برنامه نویسی C پیاده سازی شده است تمام این فراخوان ها نیز در واقع توابعی به زبان C هستند.

    2. لایه glib:

    این لایه نیز مجموعه ای از توابع C، ماکروها و ساختارهایی است که از طریق لایه های بالاتر مورد استفاده قرار می گیرند. در واقع glib کتابخانه ای است، شامل توابعی برای تاریخ و زمان، ورودی و خروجی، زمان سنج ها و تخصیص حافظه. همچنین توابع مفیدی برای کار با لیست ها، آرایه ها، درخت ها و حافظه cache را در اختیار ما قرار می دهد.

    3. لایه X11:

    این لایه شامل توابع سطح پایین برای مدیریت رویداد های گرافیکی مربوط به موشواره و صفحه کلید می باشد. تمام توابع مورد نیاز برای مدیریت پنجره ها و پاسخ به رویداد های ماوس و صفحه کلید توسط [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] سرویس دهی می شوند.X11 سرویس دهنده گرافیکی پایداری است که گاهی با نام X یا X11R6 هم از آن یاد می شود.

    4. لایه C++ API:

    از آن جا که لایه های بالاتر توسط C++ ایجاد شده اند، این API برای پیاده سازی اشیائی که در لایه های بالایی ایجاد می شوند در این جا قرار می گیرد.

    5. لایه Qt Classes:

    این لایه هم شامل توابع Qt هست که به زبان C++ نوشته شده اند.

    6. لایه KDE Classes:

    این لایه شامل کلاس های تکامل یافته ای است که در واقع با استفاده از همان کلاس های Qt ایجاد شده اند. همین کلاس ها و اشیای این لایه هستند که محیط گرافیکی KDE را بوجود آورده اند.

    7. لایه Application:

    در این جا با دو اصطلاح جدید آشنا می شویم، که عبارتند از Qt Application و KDE Application.

    Qt Application آن دسته از نرم افزارها هستند که شیئ QApplication را برای مقدار دهی اولیه خود به وجود می آورند، در حالی که دسته دوم (یعنی KDE Application ها) شیئ KApplication را ایجاد می کنند.در سلسله مراتب وراثت، کلاس KApplication از کلاس QApplication وراثت گرفته است و علاوه بر این، استاندارد های مربوط به محیط گرافیکی KDE را شامل می شود.


    حالا بیاین با هم ببحثیم
    Last edited by a.toraby; 21-07-2007 at 21:22.

  4. 4 کاربر از a.toraby بخاطر این مطلب مفید تشکر کرده اند


  5. #3
    پروفشنال a.toraby's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    Tehran
    پست ها
    971

    پيش فرض درس دوم

    آدرس درس قبلی:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    آدرس درس بعدی:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    نصب و راه اندازی
    برای نصب و استفاده از Qt روش های متفاوتی وجود دارد. در این جا به دو روش ساده اشاره می شود. برای توضیحات بیشتر می توانید به مستندات بسته ای که در اختیار دارید، رجوع کنید. در هنگام نوشتن این خودآموز نسخه 4.1.4 Qt معرفی شده است. بنابراین مبنای کار ما هم بر اساس همین نسخه می باشد. برای این که بتوان کار با Qt را آغاز نمود، یک کامپایلر C++ نیاز داریم. بنابراین در مرحله اول MinGw و بعد از آن Qt framework را نصب می کنیم. روش نصب این بسته های نرم افزاری بر روی سیستم عامل ویندوز بیش از اندازه ساده و پیش پا افتاده است. تنها با رعایت چند نکته ساده می توان روند نصب برنامه را به پایان رساند.
    نکته مهمی که در نصب کامپایلر MinGw باید در نظر گرفته شود این است که دقت کنید نرم افزار را در پوشه ای نصب کنید که در نام آن از فضای خالی استفاده نشده باشد. چون کامپایلر نسبت به فضای خالی حساس است و قادر به کامپایل برنامه ها نخواهد بود.
    در ضمن همیشه توجه داشته باشیذ که بهترین محل نصب هر کامپایلری، همان پوشه پیش فرض آن می باشد. یعنی c:\MinGw
    شما می توانید MinGw را از آدرس زیر دریافت نمایید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    سپس فایل exe را اجرا نمایید و برنامه را نصب کنید. توصیه می شود نسخه 5 یا بالاتر این کامپایلر را دانلود نمایید. چون نسخه های قدیمی تر در کامپایل برنامه های Qt دچار مشکل می شوند.
    بعد از نصب MinGw لازم است قالب کاری Qt که شامل تمام توابع مورد نیاز شما می باشد نصب نمایید. اگر به سایت trolltech مراجعه نمایید با تعداد زیادی از انواع Qt مواجه خواهید شد. در این جا توضیحی مختصر در مورد انواع توزیع های موجود داده می شود:
    کلاً Qt تحت دو لیسانس عرضه می شود. که عبارتند از Open source و Commerical. نسخه متن باز آن بعضی از ویژگی ها را ندارد. مثلاً از نسخه رایگان Qt نمی توان برای اتصال به پایگاه داده MySql استفاده کرد اما در نسخه تجاری این محصول این قابلیت به طور پیش فرض وجود دارد. در ضمن طبق قراردادی که با مشتری بسته می شود. کاربر تنها مجاز است از نسخه رایگان برای تولید نرم افزارهای متن باز استفاده نماید. در این جا چون قصد ما صرفاٌ موزش می باشد از نسخه متن باز این نرم افزار استفاده می کنیم، و چون می خواهیم از کامپایلر MinGw استفاده کنیم ( که آن هم متن باز و رایگان است) باید توزیع مخصوص آن را دریافت کنیم. بنابراین به آدرس زیر مراجعه کنید و فایل qt-win-opensource-4.1.4-mingw.exe را دانلود نمایید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    تنها نکته ای که لازم است در نصب Qt رعایت شود تنظیم نمودن منغیرهای محیطی هست و این کار به سادگی و با تیک زدن set environment variables به صورت خودکار انجام می شود.
    با نصب Qt، چهار نرم افزار کمکی دیگر نیز علاوه بر توابع و کامپننت های اصلی در اختیار شما قرار می گیرد. این چهار نرم افزار عبارتند از Asistant که به عنوان help از آن استفاده می نماییم. نرم افزار Asistant کامل ترین و روان ترین منبعی است که برای شروع برنامه نویسی می توان به کار برد. نرم افزار دیگر Qt Designer است که برای تولید فرم ها و GUI به روش ساده و سریع کاربرد دارد. البته نوعی از Qt هم وجود دارد که می تواند به عنوان یک Plugin به Microsoft Visual Studio افزوده شود. نرم افزار دیگر شامل مثال های ساده ای در مورد Qt و کاربردهای آن می باشد. نرم افزار LingUist هم در مورد پروژه هایی که در چند زبان (ملیت) مختلف توسعه داده می شوند کاربرد دارد. در مورد تک تک آن ها مفصلاً توضیح داده خواهد شد. برای کامپایل برنامه های نوشته شده از Qt command prompt استفاهده می کنیم. نحوه کامپایل برنامه ها در درس بعدی توضیح داده می شود.
    از آن جا که نحوه نصب بر روی سیستم های لینوکسی تا حدودی متفاوت هست. این مبحث را مطرح نمی کنم. هر کسی که مسکلی داشت پیغام بده تا رسیدگی بشه. شاید در ادامه نصب qt بر روی suse رو توضیح داد. اما در مورد بقیه توزیع ها شرمنده ام. منابع اینترنتی فراوان وجود داره.

    احیاناً اگه امکان دانلود فایل های حجیم ندارید. یک پیغام خصوصی بدید تا ببینیم چه کار می شه کرد
    Last edited by a.toraby; 03-08-2007 at 17:54.

  6. 2 کاربر از a.toraby بخاطر این مطلب مفید تشکر کرده اند


  7. #4
    پروفشنال a.toraby's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    Tehran
    پست ها
    971

    پيش فرض درس سوم

    آدرس درس قبلی:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    آدرس درس بعدی:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    نوشتن اولین برنامه
    در این قسمت با مفاهیم اولیه برنامه نویسی با Qt و تفاوت های بین Qt Application و KDE Application می پردازیم. همچنین با نحوه ایجاد یک پروژه و کامپایل یک برنامه ساده آشنا می شویم. این فصل بیشتر بر نحوه مدیریت پروژه با استفاده از ابزار qmake تکیه دارد، اما تا حدودی با برنامه های دیگر نیز که در این رابطه در اختیار ما قرار دارد آشنا خواهیم شد.
    Hello Qt!
    در زیر ساده ترین برنامه ممکن را مشاهده می کنید. با اجرای این برنامه یک پنجره نمایان خواهد شد که پیغام Hello Qt! روی آن نقش بسته است.
    با بررسی خط به خط این برنامه ساده و کوتاه تا حدودی با نحوه پیاده سازی اشیای Qt از طریق زبان C++ آشنا می شوید. بنابراین برای درک مفاهیم مطرح شده، باید تا حد قابل قبولی به برنامه نویسی به زبان C++ و اصول شی گرایی تسلط داشته باشید.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در خط اول و دوم، فایل های حاوی تعریف کلاس های QApplication و QLable را include کرده ایم. در خط پنجم یک شیئ از نوع QApplication ایجاد می شود، بنابراین این برنامه از نوع Qt Application میباشد. سازنده این کلاس به دو پارامتر نیاز دارد که عبارتند از argc و argv.
    در خط بعد یک شیئ از نوع QLable ایجاد کرده ایم. این Widget کار یک برچسب را برای ما انجام می دهد، با استفاده ازآن می توان متن های غیر قابل تغییر توسط کاربر را، بر روی صفحه، نمایش داد. سازنده این کلاس دارای دو پارامتر می باشد، پارامتر اول رشته ای است که می خواهیم درون lable چاپ شود.
    همان طور که قبلاً گفته شد اصطلاح Widget به هر شیئی اطلاق می شود که در صفحه قابل نمایش باشد. در ضمن هر Widget می تواند داخل Widget دیگری قرار بگیرد یا شامل چندین Widget دیگر درون خود باشد. پارامتر دوم سازنده کلاس یک اشاره گر است. مقدار 0 به سازنده کلاس نشان می دهد که این Widget، خود یک پنجره است و درون پنجره دیگری قرار ندارد.
    در خط هفتم، متد setMainWidget باعث می شود شیئ lable که در خط قبلی ساخته شده است به عنوان شیئ اصلی برنامه در نظر گرفته شود. با انجام این کار وقتی کاربر این پنجره را ببندد اجرای برنامه پایان می پذیرد و منابع تخصیص داده شده به برنامه، به سیستم بازگردانده می شود. اگر این خط را حذف کنیم، برنامه باز هم اجرا می شود ولی بدون MainWidget برنامه در Background در حال اجرا باقی می ماند، حتی اگر تمام پنجره های آن بسته شده باشد.
    البته این متد در نسخه چهارم Qt دیگر به کار نمی رود. در نسخه چهارم شما می توانید از تابع lastWindowClosed برای این کار استفاده کنید. این متد نیز متعلق به QApplication می باشد و هنگامی که آخرین پنجره برنامه بسته می شود سیگنال به متد (اسلات) quit ارسال می شود.
    در واقع در برنامه مورد بحث نیازی به اجرای متد setMainWidget نمی باشد چون متد quit همه کارها را انجام خواهد داد. بنابراین می توان خط هفتم برنامه را حذف کرد.
    تمام Widget ها در حالت Hidden بوجود می آیند، این مسئله به ما کمک می کند تا ابتدا شیئ را کاملاً سفارشی کنیم سپس با متد show آن را نمایش دهیم. این کار را در خط 8 انجام داده ایم.
    در آخرین خط، کنترل اجرای برنامه به Qt واگذار می شود. به این ترتیب برنامه در حالت انتظار باقی می ماند تا این که رویدادی اتفاق بیفتد. این رویداد می تواند کلیک بر روی دکمه X بالای پنجره باشد، در این صورت برنامه به پایان خواهد رسید.
    حال نوبت آن رسیده که برنامه بالا را کامپایل نمایید. برای این کار از qmake استفاده می کنیم.
    qmake
    در این قسمت نحوه استفاده از qmake را به شما آموزش می دهیم. توصیه می شود بعد از خواندن این بخش به مسندات نرم افزار خود مراجعه کنید.
    برای شروع کافیست در شاخه مربوطه (دایرکتوری که فایل های برنامه در آن قرار دارند) فایلی متنی با نام hello.pro ایجاد نمایید که شامل اطلاعات مورد نیاز qmake، برای مدیریت پروژه خواهد بود. این فایل را می توانید با استفاده از هر ویرایشگر متنی ایجاد نمایید. البته دستور qmake هم این کار را می تواند انجام دهد. بنابراین دستور زیر را در حالی که درون شاخه مربوطه هستید اجرا نمایید.
    qmake –project
    به این ترتیب فایلی با پسوند .pro و هم نام با نام دایرکتوری جاری ساخته خواهد شد.
    حال که فایل پیکر بندی پروژه را ایجاد کرده اید باید با استفاده از دستورات ویژه ای که وجود دارد منابع مورد نیاز را معرفی کنیم. تمام این تنظیمات درون فایل پروژه، (hello.pro) انجام خواهد شد.
    فایل hello.pro را با یکی از ویرایش گرهای متن مورد علاقه خود باز کنید.
    با استفاده از دستور SOURCES فایل های منبع را به پروژه اضافه می کنیم. به این ترتیب که خط زیر را به فایل hello.pro اضافه می کنیم.
    SOURCES += hello.cpp
    مثلاً اگر فایل دیگری هم به نام main.cpp وجود داشت، در خط بعدی فایل، دستور زیر را می بایست تایپ می کردید.
    SOURCES += main.cpp
    با استفاده از دستور HEADER نیزفایل های هدر (مثلاً hello.h ) را به پروژه اضافه می کنیم
    HEADER += hello.h
    چون در توسعه نرم افزارمان از کلاس های Qt استفاده کرده ایم. لازم است با استفاده از دستور CONFIG به qmake اعلان کنیم که برای ایجاد فایل اجرایی مربوطه باید از کتابخانه های مخصوص Qt استفاده کند. ( در آینده حتماً همین طور خواهد بود ، ولی فعلاً اگر مایل بودید می توانید آموخته های خود را با یک برنامه helloworld ساده تحت زبان C++ بیازمایید. در این صورت نیازی به دستور CONFIG نخواهید داشت)
    CONFIG += qt
    در ضمن می توان با استفاده از دستور TARGET نام فایل نهایی را مشخص نمود. به این صورت نام فایل اجرایی تعیین خواهد شد.
    TARGET = helloworld
    بعد از نوشتن این دستورات فایل را ببندید و تمام تغییرات را در آن ذخیره کنید.
    حال می توان با استفاده از دستور qmake فایل Makefile را ایجاد کرد. برای این کار باید در دایرکتوری اصلی پروژه قرار داشته باشید.
    qmake –o MakeFile hello.pro
    پس از ساخت MakeFile پروژه نوبت به کامپایل برنامه می رسد. اگر قصد استفاده از کامپایلر mingw را دارید، می توانید با اجرای دستور make آن را فراخوانی کنید.
    make
    دقت داشته باشید که اگر مراحل ساخت makefile را به درستی انجام نداده باشید و این فایل ایجاد نشده باشد، با اجرای دستور make پیام خطایی ظاهر خواهد شد، با این مفهوم که makefile مربوطه در شاخه جاری یافت نمی شود.
    همان طور که تا به حال متوجه شدید برای توسعه پروژه خود باید کارهای زیادی را انجام دهید. این بخش از کار، خود زمان زیادی را مصرف می کند و شما باید تسلط کافی در این زمینه داشته باشید، چون با انبوهی از دستورات و ابزارهای متفاوت سرو کار خواهید داشت.
    البته حتی این امکان وجود دارد که شما بدون استفاده از qmake و بصورت دستی، خودتان اقدام به ایجاد یک makefile نمایید.
    بعد از اجرای دستور make فایل اجرایی مورد نظر به وجود می آید و شما می توانید با اجرای آن از برنامه ای که نوشته ایداستفاده نمایید.
    Hello KDE!
    همانطور که دیدید این برنامه بر پایه کلاس QApplication نوشته شده است. بنابر این می توانید آن را در هر سیستم عاملی که کلاس های Qt را شامل باشد اجرا کنید. مثل ویندوز، لینوکس، یا سولاریس. اما اگر مایل باشید می توانید از کلاس KApplication نیز برای برنامه نویسی استفاده کنید. بنابراین برنامه قبلی به صورت زیر در می آید.

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

    دقت کنید که کلاس KApplication در فایل kapp.h تعریف شده است. در فایل kapp.h فایل qapplication.h نیز include شده است. تمکام امکاناتی که در کلاس QApplication وجود دارد در کلاس KApplication هم موجود است و تفاوت بنیادی بین آن ها وجود ندارد. فقط بعضی تعاریف مخصوص محیط گرافیکی KDE داخل کلاس KApplication گنجانده شده است. بنابراین برنامه های KDE Application همانند Qt Application عمل می کنند با این تفاوت که KDE Application ها قابلیت های اضافی دارند که آن ها را قادر می سازد با محیط گرافیکی کاربر تعامل داشته باشند. به عنوان مثال به تنظیمات KDE سیستم میزبان دسترسی داشته باشند، مثلاً با Theme مورد استفاده توسط کاربر هماهنگ باشند.
    با توجه به مطالب گفته شده اگر قصد دارید نرم افزاری را تولید نمایید که روی هر سیستم عاملی قابل کامپایل باشد باید از کلاس های KDE صزف نظر کنید و در واقع یک Qt Application بسازید.
    آخرین نکته که باید یادآوری کنم این است که برای کامپایل KDE Application ها باید کتابخانه های مربوطه از قبیل libkdecore و libkdeui را به فایل پروژه اضافه کنید. (یادتان هست که این کار را با استفاده از دستور CONFIG انجام می دهیم.)
    Last edited by a.toraby; 25-07-2007 at 19:35.

  8. 3 کاربر از a.toraby بخاطر این مطلب مفید تشکر کرده اند


  9. #5
    پروفشنال a.toraby's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    Tehran
    پست ها
    971

    پيش فرض

    چقدر علاقه مند به برنامه نویسی زیاده تو این انجمن

    شاید هم همه بلدن این چیزا رو

  10. #6
    اگه نباشه جاش خالی می مونه Cris_Y's Avatar
    تاريخ عضويت
    Apr 2007
    پست ها
    246

    پيش فرض

    salam
    kheili jalebe edame bedin
    agar momkene ye kam bishtar mesal bezanin

  11. #7
    پروفشنال a.toraby's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    Tehran
    پست ها
    971

    پيش فرض

    salam
    kheili jalebe edame bedin
    agar momkene ye kam bishtar mesal bezanin
    جلوتر که بریم. تقریباً همش میشه مثال
    به نظر تو آموزش ها مفهوم هستش؟؟
    تونستی دانلودها رو انجام بدی؟

  12. #8
    حـــــرفـه ای sudotux's Avatar
    تاريخ عضويت
    Feb 2006
    محل سكونت
    OpenSource
    پست ها
    2,942

    پيش فرض

    دوست عزیز واقعا ممنون . تاپیک خیلی خوبیه . لطفا درس ها رو فعلا نگذار تا ما خودمونو برسونیم .

  13. #9
    پروفشنال a.toraby's Avatar
    تاريخ عضويت
    Oct 2006
    محل سكونت
    Tehran
    پست ها
    971

    پيش فرض

    دوست عزیز واقعا ممنون . تاپیک خیلی خوبیه . لطفا درس ها رو فعلا نگذار تا ما خودمونو برسونیم .
    چشم. اصلاً انجمن که می گن یعنی همین. لطفش به اینه که با هم پیش بریم. فقط شما هم لطف کنید با انرژی تر باشید. تا تاپیک هم جون بگیره.
    از همه دعوت به همکاری میشه

  14. #10
    اگه نباشه جاش خالی می مونه Cris_Y's Avatar
    تاريخ عضويت
    Apr 2007
    پست ها
    246

    پيش فرض

    are, kheili khoobe faghat mesle hame chiz dige tamrin mikhad!
    faghat ye chizi
    age momkene hamzaman too blogetoon ham up konid
    chize jalebi mishe!
    bazam mamnoon
    Last edited by Cris_Y; 22-07-2007 at 23:45.

صفحه 1 از 7 12345 ... آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •