خیلی جالبه. خوبه. احتمالاً نویسندش باغومیان نیست؟؟؟؟؟؟![]()
بلی
خیر
خیلی جالبه. خوبه. احتمالاً نویسندش باغومیان نیست؟؟؟؟؟؟![]()
سلام
بنظر من خیلی خوبه . تونستی ادامه بده . از دست ما هم هر کمکی بر بیاد کوتاهی نخواهیم کرد . الان به مستندا نیاز بسیاری دارم . بودن اون کتاب رو هم بی خیال شو ! واسه خیلی چیزا کتاب هست دلیل نمی شه دیگه واسش چیزی ننوشتن ! می تونه بهترشو بنویسی . یا اصلا بصورت عملی کار کردن باهاش نوشن بدی .
منتظرییم !!
من هم کاملاً موافقم اون کتابو یه نویسنده نوشته اونم به زبان نوشتار شما میتونی براحتی بزبان گفتار آموزش بدی و همزمان تصاویر و کدهای مورد نظر و مثالهای بیشتر! ضمن اینکه اینجا چون دروس بصورت مرحله ای و توی انجمن ارایه میشه، هرکی مشکلی داشت میتونه براحتی بپرسه و مشکلشو حل کنه!
راستی بیضایی جان یه قراری داشتیم که از پارسال منتظر جوابتم ولی تا این لحظه هیچ جوابی بهم ندادیصبر ایوب هم از این بیشتر نمیشه دیگه!
آقای بیاضی یه سوالی برای من پیش اومده
و اون اینه که آیا آواتور شما لوگوی توزیع خاصی از لینوکس هستش؟؟؟؟؟؟![]()
خوب شروع می کنیم. من سعی می کنم از همون اول اول، یعنی همون جایی که خودم شزوع کردم، بنویسم
پیش نیاز های این درس:
آشنایی با چند تا مفهوم ساده:
هسته :
هر سیستم عاملی شامل دو بخش اصلی هسته و پوسته است. توزیع های مختلف لینوکس بنابر کاربردهایی که برای آن ها در نظر گرفته شده است از هسته خاصی استفاده می کنند. هسته های مختلف دارای توانایی های متفاوتی هستند، مثلاً هسته های جدید تر دارای قابلیت های بهتری در رابطه با سخت افزار های جدید تر هستند. کار اصلی سیستم عامل را هسته انجام می دهد.
پوسته :
پوسته رابط بین کاربر و هسته سیستم عامل است. کاربر بعد از انجام عملیات ویژه ای برای ورود به سیستم به پوسته دسترسی خواهد داشت و می تواند با تایپ دستورات با هسته ارتباط برقرار کند. در حال حاضر پوسته های زیادی برای سیستم های بر پایه یونیکس توسعه داده شده اند که مشهورترین و مطرح ترین آن ها عبارتند از:
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 نیاز دارند.
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
نرم افزار [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] که به طور اختصار 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; 29-05-2007 at 19:35.
من جای بیاضی جواب میدم اواتار مربوط به [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] هست البته یخورده دیفیس شده
ok
می کم من یه همچین چیزی دیده بودما
ولی یادم نمیومد کجا دیدم
جدا ؟ چی ؟ اصلا یادم نمی یاد ؟!
راستش مشکلات کاری من خیلی خیلی زیاد شده واسه همون پیش خیلی از دوستام شرمنده شدم . ازتون عذر می خوام . حتما حتما اگر امری پود پیگیری بکنید و اگر جواب ندادم (یادم رفته یا ندیدم) دوباره ایمیل بزنید . حتما جواب خواهم داد .
باز هم ازتون عذر می خوام و در خدمت هستم .
سلام
ترابی جان ممنون
می بینم که درس رو هم شروع کردی و پایه هم زیاد داری
شما برو ما هم پشت سرت میاییم![]()
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)