پروژه برنامه نویسی شبکه و ارتباط با سرور در Qt – قسمت اول - وب سایت رضا احمدی

پروژه برنامه نویسی شبکه در محیط برنامه نویسی Qt

پروژه برنامه نویسی شبکه و ارتباط با سرور در Qt – قسمت اول

در این پروژه شما با برنامه نویسی شبکه در محیط کیوتی و تبادل اطلاعات با استفاده از پروتکل http  آشنا خواهید شد؛ همچنین کار با کلاسهایی همچون QNetworkAccessManager و QJsonDocument  و  QPixMap و … و دانلود فایل از روی سرور آشنا خواهید شد.

یک پروژه جدید بسازید به نام MRZX_ir و نام کلاس اصلی آن را zxMain بگذارید و بیس کلاس این برنامه را QMainWindow   انتخاب کنید.

هدف :

میخواهیم برنامه ای بنویسیم که کار بر نام کار بری و رمز عبور را وارد میکند و در خواستش را به سرور ارسال میکند در صورتی که این نام کاربری و رمز عبور وجود داشته باشند سرو پاسخ را درقالب یک دیتایی با فرمت json به کلاینت ارسال کند و ما این دیتا را در فرم نمایش دهیم.

طراحی رابط گرافیکی :

ابتدا تمامی اشیا داخل فرم را پاک کنید و سعی کنید فرم زیر را طراحی کنید :

آموزش برنامه نویسی شیکه در کیوتی رابط کاربری
آموزش برنامه نویسی شیکه در کیوتی رابط کاربری

” ایکون ها و تصاویر را درون پوشه img  در کنار برنامه قرار دهید و یک resurce file  بسازید و این تصاویر را اضافه کنید( اموزش ایجاد ریسورس در کیوت )”

اگر استایل شیت زیر را به برنامه اضافه کنیم نتیجه دیداری بهتری را خواهیم داشت:

  1. QWidget#centralWidget{background:white;}
  2. QPushButton{
  3. background:#03dac6;
  4. color:white;
  5. font-size:14pt;
  6. border:0px;
  7. border-top-left-radius:20px;
  8. border-bottom-right-radius:20px;
  9. }
  10.  
  11. QPushButton:hover{
  12. background:#41cd52;
  13. }
  14.  
  15. QLineEdit{
  16. border:1px solid gray;
  17. border-radius:8px;
  18. font-size:14px;
  19. }
  20. QLineEdit:focus{
  21. border:1px solid #03dac6;
  22. }
  23.  
  24. QLabel#lb_name,QLabel#lb_phone,QLabel#lb_brithday{
  25. border:1px solid gray;
  26. border-radius:8px;
  27. font-size:14px;
  28. }
آموزش برنامه نویسی شیکه در کیوتی رابط کاربری و استایل شیت
آموزش برنامه نویسی شیکه در کیوتی رابط کاربری و استایل شیت

تنظیم فایل .pro برنامه :

حال رابط کاربری(ui)  نسبتا مناسبی ایجاد کرده ایم وقت آن رسید با استفاده از اشیاء موجود در این فرم برنامه خود را بنویسیم.

ابتدا چون قرار است در برنامه از کلاس های مربوط به شبکه مانند QNetworkAccessManager و سی پلاس پلاس یازده استفاده کنیم لازم است این عناوین را با استفاده از خطوط زیر به کامپایلر بگویم. لذا در فایل MRZX_ir.pro خطوط زیر را وارد کنیم:

آموزش برنامه نویسی شبکه در کیوتی
آموزش برنامه نویسی شبکه در کیوتی

برنامه نویسی :

کلاس های مورد نیاز جهت برنامه نویسی شبکه در پروژه به شرح زیر هستند:

QNetworkAccessManager

کلاسی است که به برنامه اجازه ارسال درخواست و دریافت پاسخ در شبکه را میدهد.

QNetworkRequest

کلاسی است که کاه درخواست مورد نظر را در خود نگهداری میکند برای ارسال این درخواست از شی ایجاد شده توسط کلاس QNetworkAccessManager  استفاده می شود.

QNetworkReply

در این کلاس دیتا و هدری که در پاسخ به یک درخواست از سوی  QNetworkAccessManager   ارسال شده است را دریافت و در خود نگهداری میکند.

” هر کلاسی که در برنامه قرار است یک آبجکت از آن بسازیم را از طریق دستور #include  به برنامه اضافه کنید.”

پس ما در ابتدا به یک عضو جدید برای برنامه خود از جنس QNetworkAccessManager  نیاز داریم اسم این عضو جدید را m_manager می گذاریم.

QNetworkAccessManager  *m_manager;

یک حافظه برای این آبجکت در کانستراکتور کلاس اصلی برنامه در اختیار میگیریم:

m_manager=new QNetworkAccessManager();

یک متد خصوصی به کلاس اضافه میکنیم به نام send_request() در این کلاس یک شی از نوع کلاس QNetworkRequest ایجاد میکنیم که با استفاده از آن از طریق شی m_manager درخواست خود را ارسال میکنیم.

توجه کنید این درخواست از نوع http  است و برای مثال سرور را بر روی لوکال هاست در نظر گرفتیم ؛ برای  تست فایلها و پروژه های برنامه نویسی سرور ابتدا آن ها را در سیستم لوکال تست میکنند برای این منظور نرم افزارهایی همچون XAMP  و WAMP موجود می باشند که به شما این امکان میدهند سورسهایی که قرار است درون هاست بر روی شیکه اینترنت قرار گیرد را تست و اجرا کنید( در این پروژه از نرم افزار XAMP استفاده شده است).

ادمه دارد ( درقسمت بعد پیاده سازی کامل برنامه را خواهیم داشت )…

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دیدگاه های ثبت شده

تا کنون دیدگاهی ثبت نشده است.