• 0
djug

استعمل Dev-cpp لكتابة برامج Qt

سؤال

مقدمة:

قامت Trolltech الشركة المطورة لـمكتبة Qt بتوفير هذه المكتبة لمستخدمي و مطوري برامج تعمل على Windows مجانا ..لكنها فرضت قيدين

الأول : كتابة برامج ذات أهداف غير تجارية

و الثاني : هو إمكانية عمل الترجمة فقط بـمترجم Mingw .لهذا فإنه ينصح باستعمال Dev-cpp لكتابة برامج تعتمد على هذه المكتبة

التحميل:

قبل البدء عملية التنصيب يجب تحميل التالي:

Dev-cpp :من الأفضل تحميله مع الـ package الخاص بـ Mingw

Qt: الإصدار 4 فما فوق

التنصيب:

قم بتنصيب Dev-cpp في مجلد C:\Dev-Cpp.

و من ثم قم بتنصيب Qt : هنا سيطلب منك تحديد مسار Mingw اختر C:\Dev-Cpp.

و من ثم اختر المجلد الذي يتم فيه تنصيب Qt ( و ليكن C:\Qt)

إنشاء Template :

الهدف من هذه الخطوة هو الحصول على خيار Qt في علبة حوار New Project

يستعمل Dev-cpp لإدارة المشاريع ما يسمى بالـ Template و الذي يكون عبارة عن ملف نصي يحتوي خصائص كل نوع من المشاريع

و إليكم مثالا عن ذلك:

[Template]

ver=1
Name=Windows Application
IconIndex=0
Description=A standard Windows application
Catagory=Basic

[Unit0]
CName=main.c
CppName=main.cpp
C=winapp_c.txt
Cpp=winapp_c.txt

[Project]
UnitCount=1
Type=0
Name=Windows App

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

القسم[template]

يسمح هذا القسم بخوصصة الظاهر في علبة الحوار الخاصة بمشروع جديد

سنستعمل التالي:

[Template]
ver=1
Name=Qt
Icon=Qt.ico
Description=Create a GUI using the Qt library.
Catagory=GUI

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

fig1.png

كما تلاحظون فإن الخاصية Name تحتوي النص الذي سيتم إظهاره تحت الأيقونة المحدد مسارها في الخاصية Icon (يمكنك الحصول على هذه الأيقونة من C:\Qt\examples\tools\qtdemo)

الخاصية Description تمثل النص الذي يتم إظهاره في قسم Description

و أخيرا الخاصية Category تسمح لك باختيار لسان التبويب الذي يحتوي على مشروعنا

القسم[unit]

الهدف من هذا القسم هو إلحاق ملف بالمشروع.يجب إلحاق كلمة unit برقم . تتم إضافة 1 إلى هذا الرقم مع كل ملف.

في مثالنا الذي نحن بصدد إنشائه نستعمل ملفا واحدا و بالتالي استعمال قسم واحد فقط لـ unit

و الذي سيكون unit0

 
[Unit0]
CppName=main.cpp
Cpp=qt_cpp.txt

لاحظ وجود خاصيتين:

الأولى CppName و هو الاسم القياسي الذي سيحفظ به الملف

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

و إليكم مثال عن ذلك

#include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QPushButton hello("Hello world!");
hello.resize(100, 30);

hello.show();
return app.exec();
}

بعد الانتهاء من عمل كل الخطوات

و لدى إنشاء مشروع جديد

سيظهر لك التالي:

fig2.png

القسم [porject]

يعتبر هذا القسم الأهم في الـ Template إذا يحتوي على الخصائص المتعلقة بكل المشروع

[Project]
UnitCount=1
Type=1
IsCpp=1
CppCompiler=...
Linker=...
ProjectIcon=Qt.ico

دور كل خاصية:

UnitCount : عدد أقسام [unit] في مثالنا هذا لدينا قسم واحد

Type : تسمح باختيار نوع المشروع (1 لاختيار win32 console )

fig3.png

IsCpp : بما أن Qt تستعمل مع c++ و ليس مع الـ C (هذا يجنبنا إنشاء مشروع c بدل Cpp)

fig4.png

ProjectIcon : أيقونة المشروع

CppCompiler و Linker : خصائص مترجم c++

و التي نحصل عليها باتباع التالي:

افتح نافذة dos على المجلد

C:\>cd C:\Qt\examples\tutorial\t1

و من ثم اكتب الأمرين التاليين:

C:\Qt\examples\tutorial\t1>qmake -project
C:\Qt\examples\tutorial\t1>qmake

الآن ستحصل على ملفات جديدة داخل هذا المجلد

افتح الملف Makefile.Release بـ notepad

و الآن يكفي نسخ محتوى الخصائص التالية:

DEFINE, CXXFLAGS INCPATH, الواحدة تلو الأخرى لتشكيل محتوى الخاصية CppCompiler

أما بخصوص Linker فاعمل نفس الشيء لكن مع الخصائص LFLAGS و LIBS

و في النهاية

اذهب إلى

File->New->Project

وقم بإنشاء أول مشروعQt لك باستخدام Dev-cpp

المثال موجود في المرفقات

عنوان المقال الأصلي:

Installer Qt4 sous Windows

رابط المقال الأصلي:

http://nicolasj.developpez.com/articles/qt4/

كاتب المقال الأصلي:

Nicolas Joseph

Qt4_DevCpp.rar

تم تعديل بواسطه djug
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

29 إجابة على هذا السؤال .

  • 0

السلام عليكم

شكرا لك على الشرح

الا يعتبر استخدام QDevelop و Qt Designer افضل ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
و من ثم قم بتنصيب Qt : هنا سيطلب منك تحديد مسار Mingw اختر C:\Dev-Cpp.

و من ثم اختر المجلد الذي يتم فيه تنصيب Qt ( و ليكن C:\Qt)

قمت بتحميل QT وحجمها 119 ميجا

تريد مني ان اقوم بتنصيبها ، لكن المجلد لا يحتوي أي ملف setup أو install !!

ما العمل ؟ فقط يوجد ملف config عند الضغط عليه تظهر شاشة الدوس لبرهة ثم تختفي

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
قمت بتحميل QT وحجمها 119 ميجا

تريد مني ان اقوم بتنصيبها ، لكن المجلد لا يحتوي أي ملف setup أو install !!

ما العمل ؟ فقط يوجد ملف config عند الضغط عليه تظهر شاشة الدوس لبرهة ثم تختفي

من أين قمت بالتحميل؟؟

لدي لإصدار 4.3.1 و حجمه فقط 69 M فقط (ملف واحد للتنصيب)

قم يالتحميل من هنا

http://trolltech.com/developer/downloads/qt/windows

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
السلام عليكم

شكرا لك على الشرح

الا يعتبر استخدام QDevelop و Qt Designer افضل ؟

عليكم السلام

نعم افضل..

,.,.,.,.,.,.,.,.,.

Best Wishes

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

قمت بالتحميل من اللنك الذي وضعته

سواء في المشاركة الاصلية او في ردك الاخير

والملف حجمه 119 ميجا وليس 69 ميجا

ارجو ان تدلني اين الخطا ؟ ربما انا اقوم بتحميل ملف آخر ؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

صارحة لا أدري اين الخلل

في انتظار رد الخبراء في الـ Qt

تم تعديل بواسطه djug
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

وشكرا علي هدا الموضوع

واريد ان اطرح بعض التساؤلات انا واجهتني مشكلة وهي كتالي

[Template]
ver=1
Name=Qt
IconIndex=Qt.ico
Description=create a GUI using the Qt library
Catagory=GUI
[Unit0]
CName=main.c
CppName=main.cpp
C=winapp_c.txt
Cpp=Qt_cpp.txt
[Project]
UnitCount=1
Type=1
IsCpp=1
CppCompiler=g++,-DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN
Linker=-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows,-L"c:\Qt\4.4.0\lib" -L"f:\Program Files\GTK2-Runtime\LIB" -L"c:\Qt\4.4.0\lib" -lmingw32 -lqtmain -lQtGui4 -lQtCore4
ProjectionIcon=Qt.ico
Name=qt App

والامر هو بنسبة لل

cppcopiler end linker

فهل اضع المعلومات بجنب بعض وبينهم فاصلة ام ارتبهم واحد اسف واحد

وللعلم هدا هو الملف الدي تحصلت عليه من المرحلة الاخيرة


# Makefile for building: t1
# Generated by qmake (2.01a) (Qt 4.4.0) on: ?????? 1. ????? 20:14:21 2008
# Project: t1.pro
# Template: app
####### Compiler, tools and options
CC = gcc
CXX = g++
DEFINES = -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN
CFLAGS = -O2 -Wall $(DEFINES)
CXXFLAGS = -O2 -frtti -fexceptions -mthreads -Wall $(DEFINES)
INCPATH = -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtGui" -I"..\..\..\..\include\QtGui" -I"..\..\..\..\include" -I"." -I"c:\Qt\4.4.0\include\ActiveQt" -I"tmp\moc\release_shared" -I"." -I"f:\Program Files\GTK2-Runtime\INCLUDE" -I"f:\Program Files\GTK2-Runtime\INCLUDE\GTK-2.0" -I"f:\Program Files\GTK2-Runtime\INCLUDE\GLIB-2.0" -I"f:\Program Files\GTK2-Runtime\INCLUDE\PANGO-1.0" -I"f:\Program Files\GTK2-Runtime\INCLUDE\CAIRO" -I"f:\Program Files\GTK2-Runtime\INCLUDE\ATK-1.0" -I"f:\Program Files\GTK2-Runtime\INCLUDE\GTKGLEXT-1.0" -I"f:\Program Files\GTK2-Runtime\LIB\GTK-2.0\INCLUDE" -I"f:\Program Files\GTK2-Runtime\LIB\GLIB-2.0\INCLUDE" -I"f:\Program Files\GTK2-Runtime\LIB\GTKGLEXT-1.0\INCLUDE" -I"f:\Program Files\GTK2-Runtime\INCLUDE\LIBGLADE-2.0" -I"f:\Program Files\GTK2-Runtime\INCLUDE\LIBXML2" -I"..\..\..\..\mkspecs\win32-g++"
LINK = g++
LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows
LIBS = -L"c:\Qt\4.4.0\lib" -L"f:\Program Files\GTK2-Runtime\LIB" -L"c:\Qt\4.4.0\lib" -lmingw32 -lqtmain -lQtGui4 -lQtCore4
QMAKE = c:\Qt\4.4.0\bin\qmake.exe
IDC = c:\Qt\4.4.0\bin\idc.exe
IDL = midl
ZIP = zip -r -9
DEF_FILE =
RES_FILE =
COPY = copy /y
COPY_FILE = $(COPY)
COPY_DIR = xcopy /s /q /y /i
DEL_FILE = del
DEL_DIR = rmdir
MOVE = move
CHK_DIR_EXISTS= if not exist
MKDIR = mkdir
INSTALL_FILE = $(COPY_FILE)
INSTALL_PROGRAM = $(COPY_FILE)
INSTALL_DIR = $(COPY_DIR)

وشكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ضعها الواحد بجنب الآخر دون فواصل

يمكنك الاستعانة بالملف المرفق (جاهز للاستعمال)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
والملف حجمه 119 ميجا وليس 69 ميجا

ارجو ان تدلني اين الخطا ؟ ربما انا اقوم بتحميل ملف آخر ؟؟

ماهي لاحقة الملف ؟ وما اسم الملف ؟

يبدو انك حملت ملف لمنصة غير التي تعمل عليها!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الاصدار القديم 4.3.1 حجمه 69 ميجا :

ftp://ftp.trolltech.com/qt/source/qt-win-...4.3.1-mingw.exe

الإصدار الحالي 4.4.1 حجمه كبير :

ftp://ftp.ntua.gr/pub/X11/Qt/qt/source/qt...4.4.1-mingw.exe

استخدم هذا الاصدار 4.3.5 حجمه حوالي 50 ميجا :

ftp://ftp.trolltech.com/qt/source/qt-win-...e-src-4.3.5.zip

تم تعديل بواسطه GamingMasteR
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
ماهي لاحقة الملف ؟ وما اسم الملف ؟

يبدو انك حملت ملف لمنصة غير التي تعمل عليها!

حملت المخصصة لوندوز

اللاحقة .zip فقد قمت بتحميل الملف المضغوط وحجمه 119 ميجا

والان اقوم بتحميل الملف غير المضغوط .exe وحجمه 150 ميجا تقريبا

الاصدار القديم 4.3.1 حجمه 69 ميجا :

ftp://ftp.trolltech.com/qt/source/qt-win-...4.3.1-mingw.exe

الإصدار الحالي 4.4.1 حجمه كبير :

ftp://ftp.ntua.gr/pub/X11/Qt/qt/source/qt...4.4.1-mingw.exe

استخدم هذا الاصدار 4.3.5 حجمه حوالي 50 ميجا :

ftp://ftp.trolltech.com/qt/source/qt-win-...e-src-4.3.5.zip

سانتظر انتهاء تحميل ملف ال 150 ميجا لأرى ماذا سيحصل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ولماذا ؟؟

الذي تحمله الآن عبارة عن self-extracting installer سيقوم بفك الضغط عن نفس الحزمة التي عندك !!

تم تعديل بواسطه GamingMasteR
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

والان ما هذه المشكلة التي حدثت اثناء عملية التثبيت

post-39453-1217650846_thumb.gif

علما انه يوجد مجلد باسم mingw بداخل مجلد Dev C++

تم تعديل بواسطه allko
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هل قمت بتنصيب MinGW ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جرب هذه الخطوة :

My Computer -> Properties -> Advanced -> Environment -> Variables, User Variables, add to PATH

أضف السطر التالي الى متغيرات النظام.

C:\Qt\4.4.0\bin

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

وعليكم السلآم اخوي والله وحتآج طريقه اضيف فيها ايوقنه عند فتح مشروع جديد بمكتبه الـQT

وابي اعرف كيف اضيف ملف التمبلت للبرنآمج ديف ارجو المسآعده ضروري والله

تم تعديل بواسطه Mr.PaTcH
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يااخاوان احد يسوي خير ويرفه ملف التمبلت كآمل لاني فشلت مع الامر الأخير والله زهقت يآشبآب لين مآمليت

ارجو المسآعده ورفع ملف تمبلت كآمل ورآح اكون شآكر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

ملفات التومبليت تجدها جميعا داخل مجلد يحمل نفس الاسم يعني

templates

وتجده في مكان تسطيب البرنامج عندك

مثلا انا استخدم

b::c

يكون مسار مجدلد التمبليت عندي هو

F:\Program Files\CodeBlocks\share\CodeBlocks\templates

وعموما ملفات التي توضع في التمبليت تتكون من ثلاث ملفات غالبا

واهم شيئ هو ملف مثلا

Qt.template

عندما تفتحه تجده علي الحالة التالية

[Template]

ver=1

Name=Qt هنا يكون اسم مشروع وغالبا مايكون اسم المكتبة

Icon=Qt.ico هنا تكتب اسم ايقونة مشروعك وامتدادها ويجب ان تكون في نفس المجلد مع التمبليت

Description=Create a GUI using the Qt library. هنا الوصف الدي يظهر عندما تعمل مشروع جديد ويظهر اسفل المكتبة

Catagory=GUI هنا نوع المشروع ويكون قوي وليس كونصول

[unit0]

CppName=main.cpp هنا اسم المشروع التلقائي الدي يظهر عندما تعمل مشروع جديد وانت تستطيع التغيير فيه

Cpp=qt_cpp.txt هدا ملف اسم ملف نصي يكون موجود في نفس المجلد يعني التمبليت ويحتوي علي كود المشروع التلقائي الدي يظهر وتستطيع التغيير فيه

[Project]

UnitCount=1

Type=1

IsCpp=1

CppCompiler=-O2 -O2 -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_GUI_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/include/QtGui" -I"C:/Qt/include/QtCore" -I"C:/Qt/include" -I"." -I"C:/Qt/include/ActiveQt" -I"tmp\moc\release_shared" -I"." -I"C:\Qt\mkspecs\win32-g++"

Linker=-mthreads -Wl -enable-stdcall-fixup -Wl -enable-auto-import -Wl -enable-runtime-pseudo-reloc -Wl -s -Wl -s -Wl -subsystem windows -L"C:\Qt\lib" -L"C:\Qt\lib" -lmingw32 -lqtmain -lQtCore4 -lQtGui4

ProjectIcon=Qt.ico وهنا تعيد كتابة نفس الامر السابق فقط

بنسبة للملفات الاخري

يبقي لنا ملف نصي يحمل المشروع التلقائي

وثالثا الايقونة التي تحمل رمز المشروع

ولكن يبقي امر اخر وهو انه يجب ات تحصل علي بيانات الخاصة ب

compiler end linker

وهده لها طريقة معينة خصوصا مع

dev c++

ولاي استفسار تفضل وشكرا

تم تعديل بواسطه aziz nor
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اشكرك اخ عزيز على التوضيح لكن بالنسبه للتمبلت المرفق هل هو كآمل وجآهز للاستعمآل ؟

ولآ لازم اضبط اعدادآت الـ

linker و complier

لاني نصبت المكتبه وحددت مسآرهآ لمسآر المترجم

Dev

ونقلت ملف التميلت للمحرر وعندمآ وضعت الكود لم يترجم وظهر لي خطأ قلت يمكن ملف التميلت مب كامل ويحتآج تعديل

وماعرفت كيف اعدل يآريت المسآعده

او طرح ملف كآمل لها

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

القالب جاهز للاستعمال

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هذا قالب ارجوا ان يفيدكم:

ضعه في مجلد Templates مع ملاحظه ان الاصدار الي لدي هو QT4.4.0 ومو قعه على جهازي هو C:\Qt\4.4.0

تحتاج تغير هذه الموقع اذا كان مختلف على جهازك.

0_Qt.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

جزاكم الله خيرا يا إخوان ع المجهود الرائع ده

أنا اتبعت خطواتكم فى التحميل والتثبيت وتمت العملية بدون ادنى مشاكل

لكن أنا متلخبط شوية

عشان أنا جديد جداا فى عالم البرمجة

هحصر أسئلتى فى ثلاثة أسئلة ويارب ما أديئش حد فيكم بيها

السؤال الاول: توضيح فرق بين ال اكيو تى و الديف بلس بلس ؟

السؤال الثانى: طريقة تثبيت الكيو تى و الديف بلس بلس على اللينكس توزيعة فيدورا 7 ؟

السؤال الأخير: هل ممكن أكمل على شغلى انا بعمله ع الويندوز من اللينكس ؟

جزاك الله خيرا على أهتمامكم

ربنا يعنكم بجد والله

ع العموم أنا هحاول أنزله عندى على اللينكس

بس المشكلة انه فعلاا عندى بس نسخة قديمة

الاصدار 3

وانا مثبت على الجهاز اللى فى الشغل الاصدار الرابع

فكنت عاوز اثبت فى البيت نفس الاصدار ونفس كل شىء

بحيث `نى لو عملت نقطة ووقفت عندها أجى البيت أكمل عليها ما يبقاش فى مشكلة

منتظر منكم الرد

السلام عليكم ورحمة الله وبركاته

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته

الحمد لله تم تثبيت ال اكيو تى 4 على جهازى فى البيت بس انا ما ثبتش الدف سى بلس بلس

دلوئتى أعمل ايه

السلام عليكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخى حسن يوسف , لا يوجد نسخة لـ Dev C++ على اللينوكس استخدم Code::Blocks فهو احسن منه

وفقك الله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
اخى حسن يوسف , لا يوجد نسخة لـ Dev C++ على اللينوكس استخدم Code::Blocks فهو احسن منه

وفقك الله

السلام عليكم ورحمة الله وبركاته

جزاك الله خيرا أخى

بس ما زالت محتاج إجابة ع الاسئلة ده

السؤال الاول: توضيح فرق بين ال اكيو تى و الديف بلس بلس ؟

هل الكيو تى ده مجرد اداة عشان اعمل بيها الشاشات و القوائم كل شىء يخص الواجهة

والديف سى بلس بلس أو غيره هو المترجم

السؤال الأخير: هل ممكن أكمل على شغلى انا بعمله ع الويندوز من اللينكس ؟

مع العم إن على الويندوز بشتغل ب الديف سى بلس بلس

شكرا جداا لمجهودكم معايه

تم تعديل بواسطه HasanYousef
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .