|
|
|
[2] فئات Qt المساعدة |
|
في هذا الدرس سنتكلم عن فئات Qt المساعدة المتوفرة في مكتبة Qt.
تتكون مكتبة Qt من مجموعة كبيرة من الفئات المساعدة ، التي تساعد المبرمجين على اداء اعمالهم.
وهذه الفئات تتضمن فئات للتعامل مع السلاسل النصية Strings، الملفات Files، ملفات XML ، الجداول Streams ، قواعد البيانات Databases او الشبكات Network.
وهنا سنستعرض فقط مجموعة من هذه الفئات .
يمكن ان تستخدم مكتبة Qt لانشاء برامج Console او تطبيقات ذات واجهة رسومية GUI.
وفي هذا الدرس ، سنوضح بعض من الفئات المساعدة في تطبيقات Console.
طباعة نصوص في الـ Console ]
هذا تطبيق Console بسيط ، يقوم بطباعة بعض النصوص في نافذة الـ Console.
#include <iostream> int main() { std::cout << "Console Applicationn"; return 0; }
|
وفيه استخدمنا فئات الاخراج Output للغة سي++.
#include <QTextStream> int main() { out << "Console Applicationn"; return 0; }
|
في المثال السابق ، قمنا بطباعة النص باستخدام فئات Qt.
النتيجة:
Console Application
ملاحظة :
اذا كنت تعمل في ويندوز ، قم باضافة السطر الاتي في ملف المشروع .pro
CONFIG += console
QFile]
تستخدم الفئة QFile للقراءة من الملف والكتابة عليه.
وفي المثال التالي سنكتب جملة في الملف :
#include <QTextStream> #include <QFile> int main() { if( data. open(QFile::WriteOnly) ) { out << "You make me want to be a better man." << endl; } }
|
النتيجة عند فتح الملف :
You make me want to be a better man.
وفي المثال القادم سنقوم بقراءة محتوي ملف الى الـ Console .
والنصوص في الملف ستكون باللغة الانجليزية لذلك يجب ان نستخدم ال Codec المناسب:
#include <QTextStream> #include <QFile> int main() { QFile data ("arabicFile"); if( data. open(QFile::ReadOnly) ) { in.setCodec("UTF-8"); out.setCodec("UTF-8"); do { line = in.readLine(); out << line << endl; } while (!line.isNull()); } }
|
ملاحظة : لم استخدم اللغة العربية وذلك لان الـ Console لا يدعم اللغة العربية ، لكن في لينوكس يوجد بعض الطريق لكي تظهر الاحرف العربية بشكل صحيح.
QList
الفئة QList هي واحد من الفئات التي تعمل كحاويات Containers، وتستخدم لتخزين مجموعة من القيم ، وتوفر وصول سريع لمحتوياتها عن طريق رقم الـ Index ، ايضا هي سريعة في عمليات الاضافة والحذف.
#include <QTextStream> #include <QList> int main() { list << "Hazem" << "Mohammad" << "Ahmad" << "Basem" << "Saleh" << "Ali" << "Null"; qSort(list); for(int i=0;i<list.size();++i) out << list.at(i) << endl; }
|
النتيجة : عرض الاسماء مرتبة.
QDir
توفر الفئة QDir وصول الى محتوى المجلد وبنيته .
#include <QTextStream> #include <QDir> int main() { out << home << endl; return 0; }
|
النتيجة :
طباعة مسار مجلد الـ home.
وهذا مثال اخر ، نستخدم فيه QDir لعمل فلترة على محتويات المجلد :
#include <QTextStream> #include <QDir> int main() { filters << "*.c" << "*.c~"; dir.setNameFilters(filters); QFileInfoList list = dir.entryInfoList(); for (int i = 0; i < list.size(); ++i) { out << QString("%1"). arg(fileInfo. fileName()); out << endl; } return 0; }
|
النتيجة :
طباعة اسماء الملفات التي تحمل الامتداد .c و .c~ فقط .
QTime
توفر الفئة QTime دوالا للتعامل مع الوقت .
وفي المثال التالي سنطبع الوقت الحالي في نافذة الـ Console :
#include <QTextStream> #include <QTime> int main() { QString stime =qtime. toString(Qt ::LocalDate); out << stime << endl; return 0; }
|
QString
تعتبر من اهم الفئات المساعدة في Qt وتستخدم للتعامل مع السلاسل النصية .
#include <QTextStream> int main() { out << a + b + c; return 0; }
|
النتيجة:
Welcom to http://www.qt-ar.org
وفي المثال التالي سنقوم ببناء سلسلة عن طريق اضافة عدة جمل في نهايتها .
#include <QTextStream> int main() { QString string = "Whether I shall "; string.append("turn out to be the hero of my own life, n"); string.append("or whether that station will be held by anobody else, n"); string.append("these pages must show.n"); out << string; return 0; }
|
النتيجة :
Whether I shall turn out to be the hero of my own life,
or whether that station will be held by anobody else,
these pages must show.
والمثال التالي سيوضح كيفية وضع قيم متغيرات داخل السلسة النصية :
#include <QTextStream> int main() { QString string = "What if I gave you %1 red roses?"; int num = 21; out << string.arg(num) << endl; return 0; }
|
النتيجة :
What if I gave you 21 red roses?
والمثال التالي سيوضح كيفية تحديد طول السلسة النصية :
#include <QTextStream> int main() { QString string = "The history of my life."; out << "The string has " + QString::number(string. size())+ " characters." << endl ; return 0; }
|
النتيجة :
The string has 23 characters.
والمثال الاخير سيوضح كيفية طباعة السلسة بحروف كبيرة Upper case وحروف صغيرة Lower case
#include <QTextStream> int main() { QString string = "The history of my life."; out << string.toLower() << endl; out << string.toUpper() << endl; return 0; }
|
النتيجة :
the history of my life.
THE HISTORY OF MY LIFE.
++++++++++++++++++++++++++++
ترجمة "بتصرف".
| إسم الكاتب |
تاريخ الإضافة |
التقييم / المقيمين |
زيارات الدرس |
| SudaNix |
21/12/2008 |
0 / 0 |
844 |
|
|
|
|