>> الصفحة الرئيسية >> سلسلة دروس للمبتدئين >> تتمة الرسائل ومربعات الحوار في qt

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

 التنصيب والاعداد التنصيب والاعداد
 دروس متقدمة دروس متقدمة
 سلسلة دروس للمبتدئين سلسلة دروس للمبتدئين
 اساسيات لغة سي++ اساسيات لغة سي++
 مقالات 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

ادخال عدد صحيح (QInputDialog::getInteger)
ان الدالة getInteger ستبدو لك سهلة بعد ان تعلمت كيفية ادخال نص بواسطة الدالة getText
ومعلماتها هي كالتالي :

  1.  
  2.  
  3. int QInputDialog::getInteger ( QWidget * parent, const QString & title, const QString & label, int value = 0, int minValue = -2147483647, int maxValue = 2147483647, int step = 1, bool * ok = 0, Qt::WindowFlags f = 0 );
  4.  
  5.  
  6.  



نسترجع بهذه الدالة عددا صحيحا int
حيث value هو القيمة الافتراظية
و minValue هو اقل قيمة مدخلة
و maxValue هو اكبر قيمة يمكن ادخالها
اما القيم الاخرى فقد سبق ذكرها فيما سبق
سوف نجرب ذلك بالمعلمات الضرورية

  1.  
  2. int entier = QInputDialog::getInteger(this, "Nombre", "Entrez un nombre entier");
  3.  




النتيجة كالتالي:



فماذا لو اردنا ان ندخل قيمة عدد مركب Double
فالامر بسيط فما علينا الا استبدال getInteger ب getDouble
فيكون الكود كالتالي
  1.  
  2. double nombreDecimal = QInputDialog::getDouble(this, "Nombre", "Entrez un nombre décimal");
  3.  
  4.  


والنتيجة :


والآن نستعرض كيفية الاختيار من بين قائمة محددة من قبل بواسطة QInputDialog::getItem

  1.  
  2.  
  3. QString QInputDialog::getItem ( QWidget * parent, const QString & title, const QString & label, const QStringList & list, int current = 0, bool editable = true, bool * ok = 0, Qt::WindowFlags f = 0 );
  4.  


ستجد بعض القيم الجديدة
list : قائمة الخيارات الممكنة محددة بواسطة QStringList
current : رقم الاختيار الافتراظي المحدد مسبقا
editable : أي هل يمكن للمستخدم ان يختار من بين القائمة وفقط ام يمكن له ان يدخل خيارا اخر من عنده طبعا تكون معلمة بصحاو خطأ tue أو false
  1.  
  2. void MaFenetre::ouvrirDialogue()
  3. {
  4. pays << "France" << "Belgique" << "Suisse" << "Canada (québec)" << "Maroc" << "Autre";
  5. QInputDialog::getItem(this, "Votre pays", "De quel pays es-tu, cher Zéro ?", pays);
  6. }
  7.  
  8.  

وهاهي النتيجة :



تحديد خط النص
علبة الحوار تحديد خط النص من بين مربعات الحوار المعروفة والتي لا غنى عنها ونستطيع ان نستعملها بواسطة QFontDialog هناك خيارات كثيرة في استعمالها يمكنك ان تراجع في وثائق QFontDialog
  1.  
  2. QFont getFont ( bool * ok, const QFont & initial, QWidget * parent, const QString & caption )
  3.  

المعلمة الاولى عبارة عن booleen صح او خطأ التي تحدد ما اذاكان المستخدم قد نقر على الزر موافق
كما يمكن تحديد الخط الافتراظي بواسطة initial
  1.  
  2. void MaFenetre::ouvrirDialogue()
  3. {
  4. bool ok = false;
  5.  
  6. QFont police = QFontDialog::getFont(&ok, m_boutonDialogue->font(), this, "Choisissez une police");
  7.  
  8. if (ok)
  9. {
  10. m_boutonDialogue->setFont(police);
  11. }
  12. }
  13.  
  14.  
  15.  

والامر بسيط جدا لقد اخذنا الخط الافتراظي من الزر الذي نقرنا عليه والذي هو m_boutonDialogue
ثم حصلنا على الخط الجديد بواسطة QFont والذي عرفناه بpolice



تحديد اللون
سنقوم الان باستدعاء مربع حوار او علبة تحديد اللون
سنستعمل الفئة QColorDialog
  1.  
  2. QColor QColorDialog::getColor ( const QColor & initial = Qt::white, QWidget * parent = 0 );
  3.  
  4.  

الدالة getColor نستعيد بها object من نوع QColor
كما يمكنك ان تحدد القيمة الافتراظية initial هنا استعملنا اللون الابيض
هنا سنعيد قيمة جديدة للون الزر ولكن لا توجد قيمة تسمى setColor بالنسبة للwidgets ولذلك سنستعمل القيمة setPalette
والكود التالي يوظح كل شيئ بالتفصيل
  1.  
  2. void MaFenetre::ouvrirDialogue()
  3. {
  4. QColor couleur = QColorDialog::getColor(Qt::white, this);
  5.  
  6. QPalette palette;
  7. palette.setColor(QPalette::ButtonText, couleur);
  8. m_boutonDialogue->setPalette(palette);
  9.  
  10.  

}
يمكنك ان ترجع الى وثائق qt وتحاول ان تبحث اكثر في كيفية استعمال QPalette


تحديد ملف أو مجلد
1تحديد مجلد (QFileDialog::getExistingDirectory)
  1.  
  2. QString dossier = QFileDialog::getExistingDirectory(this);
  3.  



2 فتح ملف موجود(QFileDialog::getOpenFileName)
علبة الحوار فتح ملف تمكنك منفتح اي ملف تريد كما يمكنك تحديد نوع الملفات التي تريد فتحها وهنا سنحاول فتح ملفات صور ذات امتداد png و gif و jpg و jpeg بحيث لا يظهر في مربع الحوار الا ملفات الصور التي حددنا ملحقاتها
  1.  
  2. void MaFenetre::ouvrirDialogue()
  3. {
  4. QString fichier = QFileDialog::getOpenFileName(this, "Ouvrir un fichier", QString(), "Images (*.png *.gif *.jpg *.jpeg)");
  5. QMessageBox::information(this, "Fichier", "Vous avez sélectionné :n" + fichier);
  6. }
  7.  
  8.  

النتيجة :

وعند النقر على افتح المسار المحدد سيحفظ في QString والذي سيعرظ في الرساة التالية :

3 حفظ ملف (QFileDialog::getSaveFileName)
نفس الخطوات السابقة ولكن هذه المرة باستعمال حفظ بدلا من فتح
  1.  
  2. QString fichier = QFileDialog::getSaveFileName(this, "Enregistrer un fichier", QString(), "Images (*.png *.gif *.jpg *.jpeg)");
  3.  



النتيجة :

هذا ما وفقنا الله لبيانه
والسلام عليكم ورحمة الله وبركاته

إسم الكاتب تاريخ الإضافة التقييم / المقيمين زيارات الدرس
أبو زكريا 04/07/2009 0 / 0 1716

الأكثر زيارة

 دليل تنصيب اطار عمل Qt ، حزمة MinGW ، بيئة التطوير QDevelop
الزيارات 4282 دليل تنصيب اطار عمل Qt ، حزمة MinGW ، بيئة التطوير QDevelop
 اعداد وتنصيب Qt
الزيارات 4068 اعداد وتنصيب Qt
 التطوير السريع للتطبيقات Rapid Application Development
الزيارات 3762 التطوير السريع للتطبيقات Rapid Application Development
 دليل تنصيب اطار عمل Qt ، حزمة MinGW ، بيئة التطوير Eclipse
الزيارات 3745 دليل تنصيب اطار عمل Qt ، حزمة MinGW ، بيئة التطوير Eclipse
 C++ In a Nutshell
الزيارات 3151 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