>> الصفحة الرئيسية >> سلسلة دروس للمبتدئين >> إطار النوافذ

الأقسام الرئيسية

 التنصيب والاعداد التنصيب والاعداد
 دروس متقدمة دروس متقدمة
 سلسلة دروس للمبتدئين سلسلة دروس للمبتدئين
 اساسيات لغة سي++ اساسيات لغة سي++
 مقالات ZetCode مقالات ZetCode
 

جديد الدروس

 الوحدة QtUiTools (واجهة المستخدم ديناميكية التوليد)
التاريخ 04/07/2009 الوحدة QtUiTools (واجهة المستخدم ديناميكية التوليد)
 Qt and Phonon
التاريخ 04/07/2009 Qt and Phonon
 تتمة الرسائل ومربعات الحوار في qt
التاريخ 04/07/2009 تتمة الرسائل ومربعات الحوار في qt
 مدخل الى xml في Qt
التاريخ 04/07/2009 مدخل الى xml في Qt
 الإدخال والإخراج لبيانات الفئات
التاريخ 04/07/2009 الإدخال والإخراج لبيانات الفئات
 

إطار النوافذ

في Qt انت لست مضطر الى استخدام النوع التقليدي المتعارف عليه في النوافذ وهو عنوان النافذة وايقونتها في اليسار و ازرار الإقفال والتكبير والتصغير في اليمين منها او العكس فبإمكانك ان تختار الإطار الذي تراه انت مناسب او تجعل برامجك بلا إطار ويتم تخزين خصائص النافذة في متغير من النوع Qt::WindowFlags من اسمه يضهر لك انه جزء من حيز الأسماء Qt وبعد التصريح عن المتغير ترسل له خواص نوافذك والتي ترسلها بعد ذلك الى النافذة بإستخدام الدالة setWindowFlags والنبدأ أولا بالتعرف على انواع النوافذ :


Qt::Widget
0x00000000
وهي الوضع الإفتراض للصف Qwidget ويمكن ان يكون أب او ابن في حالة كان أب فإنه كأنما اصبح Qt::Window


Qt::Window
0x00000001
وهي النافذة الأكثر شهرة والمتعارف عليها بعنوان وأيقونة وأزرار اقفال وتكبير وتصغير ولا يمكن ان تكون إبن


Qt::Dialog
0x00000002 | Window
وهو الوضع الإفتراضي ل Qdialog ويتميز انه يخلو من بعض الأزرار مثل تكبير وتصغير


Qt::Popup
0x00000008 | Window
ويتميز انه بلا اطار وانه في المستوى الأعلى من النوافذ وذو ضل خافت في الخلف وليس له ايقونة في شريط المهام


Qt::Tool
0x0000000a | Window
وبها زر للإقفال فقط ذو اطار متميز شبيه ب Qt::SubWindow
وتستخدم في إحتواء الأدوات والأزرار .


Qt::ToolTip
0x0000000c | Window
وهو شريط تعريفي خالي من الإطارات ويكون في المستوى الأعلى من النافذة وتستطيع استخدامها في تعريف العناصر


Qt::SplashScreen
0x0000000e | Window
وهي بلا إطار وتستخدم في الإنتظار وهي الوضع الإفتراضي للعنصر QsplashScreen


Qt::Desktop
0x00000010 | Window
وهي تمثل سطح المكتب لتكون الوضع الإفتراضي للصف Qwidget


Qt::SubWindow
0x00000012
إطار مميز بلا أي زر ويشتخدم داخل النوافذ mdi .


جميع هذه الأنواع من النوافذ والإطارات يمكنك إستخدامها مع نافذتك الرئيسية او الفرعية او ...
هل عرفت لماذا Qt هي الأفضل ؟.



مثال :

  1.  
  2. 1.int main(int argc, char ** argv)
  3. 2.{
  4. 3.QApplication app( argc, argv );
  5. 4.QLabel lab;
  6. 5.lab.setPixmap(QPixmap("c:/test2.gif"));
  7. 6.Qt::WindowFlags flags;
  8. 7.flags=Qt::SplashScreen;
  9. 8.lab.setWindowFlags(flags);
  10. 9.lab.show();
  11. 10.return app.exec();
  12. 11.}
  13.  



قمنا بإنشاء label واضفنا له صورة ثم أنشأنا المتغير Qt::WindowFlags لنضيف اليها النوع Qt::SplashScreen وهي بدون إطار كما عرفت سابقا ومن ثم أضفناها الى النافذة بإستخدام الدالةsetWindowFlags .


في هذا المثال أعتمدنا على الأنواع الجاهزة المتوفرة بحوزتنا ولكن ماذا لو أردنا نصنع إطار النافذة بنفسنا ؟
قامت Qt بتوفير ثابت تعدادي يسمح لن بصنع النافذة بالطريقة التي نريدها نحن وبنفس الطريقة السابقة وهي في هذا الجدول :

Qt::MSWindowsFixedSizeDialogHint
0x00000100
في حال استخدمتها فأنت غير قادر على تحديد ابعاد النافذة بالسحب من أطرافها

Qt::FramelessWindowHint
0x00000800
في حال اضفتها فإنه لن يصبح للنافذة إطار بمعنا آخر لن تستطيع ان تحرك او تغير في حجم النافذة .

Qt::CustomizeWindowHint
0x02000000
سوف يوفر لك الإطار ولكنك لن تشاهد تشاهد شريط العنوان والأزرار في الأعلى

Qt::WindowTitleHint
0x00001000
اضافة العنوان الى شريط العنوان والأزرار

Qt::WindowSystemMenuHint
0x00002000
اضافة ايقونة قائمة البرنامج الى شريط العنوان والأزرار

Qt::WindowMinimizeButtonHint
0x00004000
اضافة زر تصغير النافذة الى شريط العنوان والأزرار

Qt::WindowMaximizeButtonHint
0x00008000
اضافة زر تكبير النافذة الى شريط العنوان والأزرار

Qt::WindowMinMaxButtonsHint
WindowMinimizeButtonHint | WindowMaximizeButtonHint
اضافة زر تكبير وتصغير النافذة في شريط العنوان والأزرار

Qt::WindowContextHelpButtonHint
0x00010000
في حال استخدمت هذا الثابت فإنه بإمكانك استدام زر المساعدة للحصول على معلومات من أي عنصر

Qt::WindowOkButtonHint
0x00080000
اضافة الزر ok الى النوافذ من نوع dialog

Qt::WindowCancelButtonHint
0x000100000
اضافة زر cancel الى النوافذ من نوع dialog.

Qt::WindowType_Mask
0x000000ff
اطار ذا نوع فريد يعلوه عنوان يسمح لك بسحب النافذة بدون التحكم في أبعاده.


مثال:
  1.  
  2. 1.int main(int argc, char ** argv)
  3. 2.{
  4. 3.QApplication app( argc, argv );
  5. 4.QLabel lab;
  6. 5.lab.setPixmap(QPixmap("c:/test2.gif"));
  7. 6.Qt::WindowFlags flags;
  8. 7.flags=Qt::WindowTitleHint|Qt::WindowMinimizeButtonHint;
  9. 8.lab.setWindowFlags(flags);
  10. 9.lab.show();
  11. 10.return app.exec();
  12. 11.}


في هذا المثال قمنا بصنع النافذة وأضفنا لها كلا من العنوان زائدا زر تصغير النافذة في المتغير flags من النوع Qt::WindowFlags وسوف تلاحظ بعد تشغيل البرنامج ان زر تكبير النافذة لا يعمل ومن ثم اضفنا الخصائص الى النافذة وطالبنا بإظهارها .

والله الموفق .

إسم الكاتب تاريخ الإضافة التقييم / المقيمين زيارات الدرس
مصفوفة 20/09/2008 0 / 0 1605

الأكثر زيارة

 دليل تنصيب اطار عمل Qt ، حزمة MinGW ، بيئة التطوير QDevelop
الزيارات 4284 دليل تنصيب اطار عمل Qt ، حزمة MinGW ، بيئة التطوير QDevelop
 اعداد وتنصيب Qt
الزيارات 4072 اعداد وتنصيب Qt
 التطوير السريع للتطبيقات Rapid Application Development
الزيارات 3764 التطوير السريع للتطبيقات Rapid Application Development
 دليل تنصيب اطار عمل Qt ، حزمة MinGW ، بيئة التطوير Eclipse
الزيارات 3747 دليل تنصيب اطار عمل Qt ، حزمة MinGW ، بيئة التطوير Eclipse
 C++ In a Nutshell
الزيارات 3154 C++ In a Nutshell
 

الأكثر تصويتـا

 اعداد وتنصيب Qt
نتيجة التصويت 41 من 6 شخص اعداد وتنصيب Qt
 الدرس الاول : كتابة اول برنامج
نتيجة التصويت 41 من 6 شخص الدرس الاول : كتابة اول برنامج
 تخطيط البرامج Program Layout
نتيجة التصويت 40 من 6 شخص تخطيط البرامج Program Layout
 دوال المستوى العالي لبرمجة تطبيقات متعددة المسالك
نتيجة التصويت 30 من 3 شخص دوال المستوى العالي لبرمجة تطبيقات متعددة المسالك
 التطوير السريع للتطبيقات Rapid Application Development
نتيجة التصويت 30 من 5 شخص التطوير السريع للتطبيقات Rapid Application Development
 
 

سكربت story-script v1 برمجة bwady.com تطوير SudaNix