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

۲۷ مطلب با موضوع «اموزش :: CPP :: advance» ثبت شده است

بحثی در مورد یک لاگر گرافیکی خوب در کیوت با رعایت اصول معماری

باسلام

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

ادامه مطلب...
۲۳ فروردين ۹۸ ، ۱۷:۵۴ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

ماکرو برای تعریف یک استرینگ با مقدار اولیه نام کلاس در خود کلاس

یک قطعه کد کوچک برای تعریف یک متغیر از نوع std::string توی کلاس که با اسم کلاس مقدار دهی اولیه شده :

 

 

۲۳ فروردين ۹۸ ، ۱۷:۲۵ ۱ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

معرفی منابع آموزشی boost.asio

با سلام خدمت دوستان عزیز

در این پست تصمیم دارم چندین منبع آموزشی برای boost.asio را برای شما معرفی کنم :

منابع رسمی boost.asio برای فراگیری

  1. Overview
  2. Using Boost.Asio
  3. Tutorial
  4. C++11 Examples
  5. Networking TS compatibility

سه کتاب موجود برای یادگیری boost.asio

  1. Boost.Asio C++ Network Programming
  2. Boost.Asio C++ Network Programming - Second Edition
  3. Boost.Asio C++ Network Programming Cookbook

دوره ویدئویی آشنایی با boost

دوستان دقت داشته باشید یاد گرفتن boost دیگه تقریبا برای همه واجبه چون کم کم داره قسمت‌های مختلفش با تغییرات کمی به اصل سی پلاس پلاس اضافه میشه و بهتره قبل از این که تمامش به سی پلاس پلاس اضافه بشه شما اون رو یاد گرفته باشید تا بعد از اضافه شدنش مشکلی با کار کردن باهاش نداشته باشید مثلا filesystem توی استاندارد 2017 به سی پلاس پلاس اضافه شد و همینطور any و optional و خیلی چیزای دیگه تا جایی که میدونم توی استاندارد 2020 قراره بخش شبکه (Network) هم اضافه بشه .

موفق و پیروز باشید.

۰۲ آذر ۹۷ ، ۱۱:۵۸ ۱ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

انواع معماری اتصالات سیگنال و اسلات در کیوت بین c++ و qml

با سلام خدمت دوستان عزیز چندی پیش در پی مسائلی که برام پیش اومد نیاز شد توی یک برنامه که هسته سی پلاس پلاس داره و کاملا با سی پلاس پلاس هست از کیو ام ال استفاده کنم ولی جالب بود دو روشی که قبلا میشناختم برای این کار جوابگوی نیازم نبود اما اجازه بدید اول روش های قبلی رو با مثال توضیح بدم برای دوستانی که اون رو روش رو بلد نیستند :

 

ادامه مطلب...
۰۶ آبان ۹۷ ، ۰۱:۰۶ ۱ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

هزار و یک نکته در سی پلاس پلاس نکته چهارم ( چرا نباید از Singleton استفاده کنیم ؟)

در سری پست‌های الگوی طراحی الگوی Singleton را به شما معرفی کردم ولی در این پست قصد دارم دلایلی برای استفاده نکردن از این الگوی طراحی را توضیح دهم .

  1. آنها معمولا به عنوان شی گلوبال در نظر گرفته می‌شوند. بدی انها این است که وابستگی‌های کد را بجای افشا کردن در اینترفیس در کد مخفی می‌کنند. گلوبال کردن یک شی برای ارسال نکردن آن به اطراف یک بوی بد کد است .
  2. آن‌ها اصل مسئولیت واحد را زیر پا می‌گذارند. چون علاوه بر کار اصلی خود ساخت خود و مدیریت چرخه حیاط خود را نیز در دست دارند.
  3. آنها به شدت Coupling را بالا می‌برند و این باعث سختی تست آنها می‌شود.
  4. آنها طول عمر نرم‌افزار را در اختیار دارند و این برای یونیت تست که باید یک وضعیت به طور کامل خاتمه پیدا کند یک مشکل اساسی است چون باید هر واحد تست کاملا جدا از واحد‌های دیگر باشد. به همین دلیل برای یونیت تست به هیچ وجه نباید از سینگلتون استفاده کرد.

نظر شما در این مورد چیست ؟

۱۸ شهریور ۹۷ ، ۰۰:۰۰ ۱ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

دیپلوی گرافیکی وابستگی‌های برنامه Qt Quick

QLD یک ابزار گرفیکی برای تهیه موارد مورد نیاز برای خروجی برنامه‌های QtQuick بر روی پلتفرم لینوکس است برنامه مشابه برای ویندوز و البته به صورت کنسولی که توسط خود کیوت توسعه یافته Windeployqt می‌باشد.

این ابزار با رابط گرافیکی کار آماده سازی خروحی به صورت Shared Library را آسان کرده و تمام دی ال ال های مورد نیاز را برای شما جمع‌آوری می‌کند و اسکریپت شل مورد نیاز برای اجرای برنامه را برای شما ایجاد می‌کند .

این ابزار توسط شهریار رزقی توسعه یافته است .

لینک گیتهاب ابزار QLD

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

۲۰ مرداد ۹۷ ، ۲۳:۰۲ ۱ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

انتشار پروژه جدید مثال‌های QML در گیتهاب

در این پروژه سعی در انجام مثال‌های یک مقدار پیشرفته تر QML دارم و سر فرصت یک پروژه هم برای کامپوننت های کیو ام ال درست میکنم که به احتمال زیاد یکپارچه باشند یعنی مثلا یک استایل خاص رو در نظر میگیرم و تمام کامپوننت های مورد نیا توی یک برنامه واقعی رو براش توسعه میدم . البته نه به این زودی ها چون درگیری های دیگه ای دارم که فرصتم رو محدود میکنه .

توی این پروژه در حال حاضر فقط شامل کد این پروگرس بار هست که در ادامه همون آموزش Canvas که چند روز پیش آماده کردم هست و فقط خواستم نشون بدم که شدنیه صحبت هایی که توی ویدئو کردم .

اینم یک فیلم کوتاه ازش :

 

 

لینک پروژه در Github

موفق باشید .

۱۱ بهمن ۹۶ ، ۰۲:۲۸ ۱ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

اشاره‌گر هوشمند از وکتور یا وکتوری از اشاره‌گر هوشند ؟

داشتم کد میزدم به ذهنم رسید که وکتور رو اگر عادی بفرستم به یه تابع همش کپی میشه دونه دونه و اصلا بهینه نیست بعد به ذهنم رسید خب میام یه اشاره‌گر هوشمند از وکتور رو میفرستم که وکتور کپی و باز سازی نشه ولی بعد به ذهنم رسید که میشه یه وکتور از اشاره‌گر های هوشمند ایجاد کرد و فرستاد بعدش برای این که ببینم کدوم روش بهتری هست یه کد کوچیک زدم که براتون میذارم تا خودتون تست کنید :

 

 

اینم خروجی کد :

created : 1
destroyed : 1
destroyed : 1
created : 2
destroyed : 2
created : 3
destroyed : 3
destroyed : 2
destroyed : 1

نتیجه گیری هم به عهده خودتون

موفق باشید

لینک کوتاه مطلب برای اشتراک گذاری :

http://moderncpp.ir/post/94

۰۳ بهمن ۹۶ ، ۱۶:۰۵ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

انتشار قسمت هجدهم آموزش Qml به زبان فارسی(ارتباط بین qml و cpp ) قسمت دوم

با سلام خدمت دوستان آتش به اختیار

این هم قسمت هجدهم از سری آموزش های Qt-Qml که توی اون روش تعبیه کردن یک شی از کلاسی که از QObject به ارث میبره رو آموزش دادم و همینطور نحوه تعبیه و استفاده کردن Qml در ویجت‌ها رو توضیح دادم امیدوارم مفید باشه براتون و شهدا از ما راضی باشند .

 

 

 

لینک آپارات ویدئو  

۱۶ دی ۹۶ ، ۱۹:۵۹ ۴ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

یک مثال ساده از استفاده همزمان VTK و Qt در یک برنامه

با سلام خدمت دوستان آتش به اختیار

یکم وقت پیدا کردم یک مثال ساده از استفاده هم زمان vtk که توضیحاتی در موردش توی پست آشنایی با دیتاویژوالیزیشن یا مجسم سازی داده ها در برنامه نویسی  دادم و کیوت در یک پروژه آماده کردم برای دیدن مثال میتونید به لینک مثال VTK با Qt مراجعه کنید .

۱۶ دی ۹۶ ، ۱۱:۲۴ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی