رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران

جستجو در تالارهای گفتگو

در حال نمایش نتایج برای برچسب های 'کیوت'.



تنظیمات بیشتر جستجو

  • جستجو بر اساس برچسب

    برچسب ها را با , از یکدیگر جدا نمایید.
  • جستجو بر اساس نویسنده

نوع محتوا


وبلاگ‌ها

چیزی برای نمایش وجود ندارد

چیزی برای نمایش وجود ندارد

تالارهای گفتگو

  • انجمن‌های آی او استریم
    • اخبار و اعلامیه‌های سایت
    • اسناد و قوانین مرجع
    • رویداد‌ها و جلسات
    • معرفی محصولات نوشته شده‌ بومی
  • استارتاپی و کسب‌و‌کار
    • استارتاپ‌ها
    • سرمایه گذاری
    • شتاب دهنده‌ها
    • پارک‌های علم و فناوری و مراکز رشد
    • مصاحبه با استارت‌آپ‌ها
    • قوانین حقوقی
    • داستان‌های موفقیت
    • کارآفرینان و متخصصین
    • مشاوره اجرای کسب‌وکار
    • اخبار حوزه‌ی استارتا‌پی
    • آگهی‌های استخدامی
  • زبان‌های برنامه نویسی
    • برنامه نویسی در C و ‏++C
    • برنامه نویسی با Java
    • برنامه نویسی با JavaScript
    • برنامه نویسی با Go
    • برنامه نویسی با Python
    • برنامه نویسی با Delphi
    • برنامه نویسی با Ruby
    • برنامه نویسی با VB6
  • طراحی و توسعه وب
    • برنامه نویسی در PHP
    • برنامه نویسی در Asp.Net
    • برنامه نویسی با Node.JS
  • طراحی و توسعه وب اپلیکیشن‌ها
    • طراحی و توسعه در Angular
    • طراحی و توسعه در React.JS
    • طراحی و توسعه در Vue.JS
  • طراحی و توسعه موبایل و اِمبِد‌ها و تلوزیون‌ها
    • برنامه نویسی تحت محصولات اپل
    • برنامه نویسی تحت محصولات گوگل
    • طراحی و توسعه تحت محصولات دیگر
  • برنامه‌نویسی سطح پایین و سیستم عامل‌ها
    • سیستم عامل‌های آزاد
    • سیستم عامل‌های تجاری
  • بانک‌های اطلاعاتی
    • پایگاه داده MySQL
    • پایگاه داده PostgreSQL
    • پایگاه داده SQLite
    • پایگاه داده MongoDB
    • پایگاه داده SQL Server
    • دیگر پایگاه‌های داده
  • برنامه نویسی تحت محصولات اپل
    • محیط توسعه Xcode
    • برنامه نویسی با Objective-C
    • برنامه نویسی با Swift
  • برنامه نویسی تحت محصولات مایکروسافت
    • محیط توسعه Visual Studio
    • برنامه نویسی با #C
    • برنامه نویسی با Visual Basic.Net
    • طراحی و توسعه تحت Wpf
    • طراحی و توسعه تحت Universal و Fluent
  • طراحی و توسعه تجربه کاربری (UX) و رابط کاربری (UI)
    • طراحی رابط کاربری (UI)
    • طراحی تجربه کاربری (UX)
  • سوالات و مباحث عامیانه
    • سوالات دانشجویی
    • فناوری و سخت افزار
    • سوالات مشاوره‌ای
  • سطل آشغال
    • سطل آشغال

Product Groups

  • کتاب‌ها و مقالات آموزشی

دسته ها

  • علمی
  • استارتاپی
  • برنامه‌نویسی
    • زبان‌های برنامه نویسی
    • معماری‌ها
  • کامپایلر و مفسر
  • محیط‌های توسعه
  • پلتفرم‌های توسعه
  • کدنویسی ایمن
  • فناوری‌ها
    • پردازش تصویر
    • اینترنت اشیاء
    • پردازش ابری (Cloud Computing)
    • چند سکویی (Cross-Platform)
    • بیگ دیتا (Big Data)
    • هوش مصنوعی (AI)
    • سخت افزار
    • نرم‌افزار و اپلیکیشن
    • اینترنت و شبکه
    • رمزنگاری
    • امبد‌ها (Embedded)
  • طراحی
    • تجربه کاربری
    • رابط کاربری

دسته ها

  • عمومی
  • گرافیکی
  • شبکه و ارتباطات

دسته ها

  • کامپایلر‌ها
  • محیط‌های توسعه
  • کتابخانه‌ها
  • ماژول‌ها و پلاگین‌ها
  • محصولات بومی
  • کتاب‌ها و مقالات
  • ابزار‌ها
  • طراحی و گرافیک

جستجو در ...

نمایش نتایجی که شامل ...


تاریخ ایجاد

  • شروع

    پایان


آخرین بروزرسانی

  • شروع

    پایان


فیلتر بر اساس تعداد ...

تاریخ عضویت

  • شروع

    پایان


گروه


شناسه گیت‌هاب


شناسه لینکدین


شهر

14 نتیجه پیدا شد

  1. کامبیز اسدزاده

    کتاب آموزش پیشرفته ++C همراه Qt (پیشرفته)

    نگارش 1.3.7

    همانطور که می‌دانید در سال ۹۵ نسخه اول ومقدماتی اولین کتاب برنامه نویسی سی پلاس پلاس همراه با کتابخانه کیوت انتشار یافت، طبق بازخورد‌هایی که از علاقه مندان و خوانندگان کتاب چه در نسخه رایگان و چه در نسخه تجاری به این نتیجه رسیدیم که محتوایی فراتر از محتوای مقدماتی که تحت برنامه نویسی سنتی بود در اختیار شما قرار دهیم. * تمامی حقوق مادی و معنوی این کتاب متعلق به مولف و ناشر مولف (کامبیز اسدزاده) می‌باشد و هرگونه کپی برداری از آن پیگرد قانونی خواهد داشت. توجه : در داشتن هر گونه انتقاد و پیشنهاد در رابطه با این کتاب با آدرس شخصی نویسنده (kambiz.ceo@gmail.com) مکاتبه نمایید. نکته : این کتاب در روز‌های خاص ممکن است شامل تخفیف قرار بگیرد. نکته دوم : کسانی که این کتاب را یک بار خریداری می‌کنند نسخه‌ی به روز رسانی شده آن را به صورت رایگان می‌توانند دریافت کنند. برخی از درخواست‌ها در کتاب مقدماتی به صورت زیر بودند: آموزش پیشرفته در رابطه با QML و آشنایی با آن آموزش برقراری ارتباط بین ++C و QML به صورت بک اند و فرانت اند آموزش کار با کنترل‌ها و نحوه سفارشی سازی پروژه آموزش برقراری ارتباط با پایگاه داده و فناوری های مرتبط با آن آموزش نحوه پیکربندی کیت‌ها٬ کامپایلر و ... آموزش نحوه توسعه برنامه بر روی پلتفرم های مختلف از حمله اندروید٬ آی او اس و ... و درخواست‌های دیگر... بنابراین بر اساس این درخواست‌ها و محتوایی که نیاز می باشد بعد از جلد مقدماتی با آن‌ها آشنا باشید را در این نسخه فراهم کرده ایم. نکته از نظر من در رابطه با محتوا: کتابخانه کیوت شامل مباحث بسیار زیادی است که می‌توان از هزاران صفحه محتوای آموزشی تولید کرد. اما در این محتوای آموزشی من تنها به مواردی اشاره کرده ام که لازمه کار هستند و در پروژه‌ها می‌بایست اطلاعات لازم در رابطه با آن‌ها داشته باشید. هزینه این کتاب چطور و بر چه اساسی خواهد بود؟ همانطور که می‌دانید هزینه مقدماتی کتاب در ویرایش اول و دوم با قیمت ۱۰.۰۰۰ تومان و در ویرایش سوم با قیمت ۲۰.۰۰۰ هزار تومان در اختیار علاقه مندان قرار گرفته است که شامل بهبود و توسعه قالب و محتوای آن بر اساس بازخورد ها بوده است. قیمت این جلد در حال حاضر۶۵.۰۰۰ تومان در نظر گرفته شده است که در قالب A4 با تعداد حداقل فعلی۴۴۶ صفحه‌ی (به‌روز شده) توسعه یافته است و در مرحله اول در قالب PDF منتشر خواهد شد. نسخه چاپی این کتاب چطور خواهد بود؟ آیا برنامه ای برای آن خواهید داشت؟ بر اساس بازخورد‌هایی که داشته ایم بیش از ۸۵ درصد علاقه مندان مایل به دریافت نسخه الکترونیکی کتاب بودند که در آن می‌توانند به راحتی کد‌های نوشته شده را در محیط توسعه خود کپی کنند بنابراین نسخه الکترونیکی در اولویت اول قرار گرفته است که می‌توان در کمترین زمان ممکن آن را آماده کرد. اما در رابطه با نسخه چاپی باید طبق مراحل مورد نیاز زمانی را صرف عقد قرارداد و توافق با ناشر در نظر بگیریم که ممکن است چند ماه بعد از نسخه الکترونیکی به تصویب رسیده و منتشر شود. (فعلا تصمیم قطعی در رابطه با این موضوع گرفته نشده است) این بستگی به استقبال علاقه مندان خواهد داشت و هزینه آن با نسخه الکترونیکی مجزا خواهد بود. سرفصل ها و محتوا چه چیز‌هایی هستند؟ محتوای کتاب طبق آخرین استاندارد کتابخانه بر پایه نسخه ۵.۸ به بالا می‌باشد. محتوای آن به نسخه ۵.۹ و حتی ۵.۱۰ به صورت پیش نویسه به روز رسانی شده است. همچنین ویژگی های و موارد مهمی که در نسخه ۵.۹ و ۵.۱۰ موجود هستند در این کتاب به آن‌ها اشاره شده است. سر فصل‌های نهایی و تایید شده کتاب: فصل اول مقدمه بر زبان ++C برخی از قابلیت‌ها ساختار برنامه در ++C کتابخانه‌ها فرق بین C و ++C ویژگی‌های معرفی شده در ++C ویرایش‌های ۱۱ ٬ ۱۴ و ۱۷ کامپایلر‌های ++C و وضعیت آن‌ها ساختار اسناد ++C در پروژه‌ کاربرد این زبان در کجاست؟ استاندارد‌های زبان مقدمه کیوت (Qt) معرفی کیوت (Qt) ۵.۹ آشنایی با محیط توسعه، نصب و راه اندازی همراه با پیکربندی کیت (Kit) در آن نصب و راه اندازی محیط Qt پیکربندی کیت‌ها در macOS پیکربندی کیت‌ها در Linux پیکربندی کیت‌ها در Windows معرفی محیط توسعه کیوت کرِیتور (Qt Creator) نسخه 4 پیکربندی و تنظیمات مربوط به ساخت برای پلتفرم‌های مختلف معرفی مجوز های Qt و نحوه استفاده از مناسبترین مجوز لوگو‌های نشانگر ساخته شده با Qt پشتیبانی از انواع پلتفرم‌ها پشتیبانی از انواع معماری ها شرایط و قوانین لازم جهت انتشار اپلیکیشن در فروشگاه iTunes یا همان (Apple Store) شرایط و قوانین لازم جهت انتشار اپلیکیشن در فروشگاهWindows Store شرایط و قوانین لازم جهت انتشار اپلیکیشن در فروشگاه Google Play شرایط و قوانین اختصاصی برنامه تحت Qt جهت انتشار و پذیرش در فروشگاه های مرتبط فصل دوم معرفی فناوری Qt Quick ویرایش 2 معرفی زبان کیو اِم اِل (QML) ویرایش 2 آشنایی با سبک - سینتَکس (Syntax) زبان QML روش اعلام یا اظهار یک شیء در QML اشیاء فرزند (Child-Object) در QML سبک و روش اعمال اظهار نظر (Comment) در QML صفت های اشیاء در QML پشتیبانی از جاوا اسکریپت (JavaScript) و ترکیب آن با QML روش استفاده از جاوا اسکریپت در سند QML روش های ترکیب ++C و استفاده از آن در سند QML فصل سوم معرفی انواع پروژه ها تحت فناوری کیوت کوئیک (Qt Quick) معرفی پروژه از نوع Qt Widget Application معرفی پروژه از نوع Qt Console Application معرفی پروژه از نوع Qt Quick Application معرفی پروژه از نوع Qt Quick Controls 2 Application معرفی پروژه از نوع Qt Quick Controls Application معرفی پروژه از نوع Qt Quick Canvas 3D Application معرفی پروژه از نوع Qt Quick Labs Controls Application آغاز ایجاد پروژه تحت C++ و Qt Quick ساده ترین برنامه معرفی کلاس QGuiApplication معرفی کلاس QQmlApplicationEngine معرفی کلاس QCoreApplication معرفی تابع exect در پروژه فصل چهارم انواع کنترل ها، منو ها و دیگر آبجکت ها معرفی انواع QML پایه در فناوری Qt Quick نوع date نوع color نوع font نوع matrix4x4 نوع point نوع quaternion نوع rect نوع size نوع vector2d نوع vector3d نوع vector4d معرفی انواع اشیاء QML در فناوری Qt Quick معرفی Accessible معرفی AnchorAnimation معرفی AnchorChanges معرفی AnchorImage معرفی AnimatedSprite معرفی Animation معرفی AnimationController معرفی Animator معرفی Behavior معرفی BorderImage معرفی Contex2D معرفی Canvas معرفی CanvasGradient معرفی CanvasImageData معرفی CanvasPixelArray معرفی CanvasColorAnimation معرفی Column معرفی DoubleValidator معرفی Drag معرفی DragEvent معرفی DropArea معرفی EnterKey معرفی Flickable معرفی Flipable معرفی Flow معرفی FocusScope معرفی FontLoader معرفی FontMeteric معرفی Gradient معرفی GridMesh معرفی GridView معرفی Image معرفی IntValidator معرفی Item معرفی ItemGraResult معرفی KeyEvent معرفی KeyNavigation معرفی Keys معرفی LayoutMirror معرفی ListView معرفی Loader معرفی MouseArea معرفی MouseEvent معرفی MultiPointTouchArea معرفی NumberAnimation معرفی OpacityAnimator معرفی ParallelAnimation معرفی GraphicInfo معرفی ParentAnimation معرفی ParentChange معرفی Path معرفی PathAnimation معرفی PathView معرفی PauseAnimation معرفی PropertyAction معرفی PropertyChanges معرفی Rectangle معرفی RegExpValidator معرفی Repeater معرفی Rotation معرفی RotationAnimation معرفی RotationAnimator معرفی Row معرفی Scale معرفی ScaleAnimator معرفی SecuentialAnimation معرفی ShaderEffect معرفی ShaderEffectSource معرفی Shortcut معرفی SmoothedAnimation معرفی SpringAnimation فصل پنجم معرفی انواع کنترل های 2 Qt Quick Controls کنترل AbstractButton کنترل ApplicationWindow کنترل BusyIndicator کنترل Button کنترل ButtonGroup کنترل CheckBox کنترل CheckDelegate کنترل ComboBox کنترل Container کنترل Control کنترل Dial کنترل Drawer کنترل Frame کنترل GroupBox کنترل ItemDelegate کنترل Label کنترل Menu کنترل MenuItem کنترل Page کنترل PageIndicator کنترل Pane کنترل Popup کنترل ProgressBar کنترل RadioButton کنترل RadioDelegate کنترل RangeSlider کنترل ScrollBar کنترل ScrollIndigator کنترل Slider کنترل SprinBox کنترل StackView کنترل SwipeDelegate کنترل SwipeView کنترل Switch کنترل SwitchDelegate کنترل TabBar کنترل TabButton کنترل TextArea کنترل TextField کنترل ToolBar کنترل ToolButton کنترل ToolTip کنترل Thumbler فصل ششم معرفی Qt Quick Dialog (دیالوگ های انتخاب رنگ، فایل، فونت و پیغام) معرفی Color Dialog معرفی Font Dialog معرفی File Dialog معرفی Message Dialog معرفی Qt Quick Layouts معرفی Column Layout معرفی Grid Layout معرفی Row Layout معرفی Stack Layout معرفی Qt Quick Control Styles (سبک و استایل نویسی کنترل ها – سفارشی سازی) واکنش گرایی و پاسخ دهی محتوای وب در اپلیکیشن با Qt WebEngine محتوای چند رسانه ای در کیوت QMultimedia محتوای چند رسانه ای در کیوت QMultimedia پخش صوت ظبط صدا در فایل پخش ویدیو کار با دوربین فصل هفتم معرفی و پیکربندی کار با بانک اطلاعاتی (دیتابیس) کار با بانک اطلاعاتی و ارتباط آن بین C++ و QML معرفی و کار با XML معرفی و کار با JSON معرفی و کار با QSetting سفارشی سازی فایل .pro پروژه فصل هشتم مقایسه انواع حالت های کامپایل Debug و Release نحوه افزودن دیگر کتابخانه های C++‎‎ در محیط Qt Creator و استفاده همراه با کتابخانه Qt فرق بین کامپایل استاتیک و داینامیک نحوه خروجی گرفتن / گسترش (Deployment) در Qt پیکربندی و انتشار برنامه در پلتفرم ویندوز (Windows) پیکربندی و انتشار برنامه در پلتفرم مک (macOS) پیکربندی و انتشار برنامه در پلتفرم لینوکس (Linux) پیکربندی و انتشار برنامه در پلتفرم‌های iPhone و iPad (iOS) پیکربندی و انتشار برنامه در پلتفرم اندروید (Android) معرفی ابزار کیوبس (QBS) به روز رسانی کیوت بدون دریافت فایل نصبی آفلاین اهداف نسخه‌های ۵.۱۰ و ۶ پیشنهادات و ملاحظات در عملکرد و کارآیی (جدید)

    650٬000 ریال

  2. xarion

    سلام. من یه منو دارم که به صورت زیر ساخته می شه QQuickView *leftMenuView = new QQuickView(); leftMenuView->rootContext()->setContextProperty("autoTr", QString()); leftMenuView->rootContext()->setContextProperty("ctrlOptions", ctrlOptions); leftMenuView->rootContext()->setContextProperty("ctrlLeftMenu", ctrlLeftMenu); leftMenuView->setSource(QUrl("qrc:/LeftMenu.qml")); leftMenuWidget = QWidget::createWindowContainer(leftMenuView, this); leftMenuWidget->setMinimumWidth(280); leftMenuWidget->setVisible(false); QVBoxLayout* leftMenuLayout = new QVBoxLayout(); leftMenuLayout->addWidget(leftMenuWidget); scanAreaLayoutOverlap->addLayout(leftMenuLayout, 0, 0, Qt::AlignLeft); برای باز و بسته شدن هم دو تا فانکشن Open و Close دارم که visibility رو خاموش و روشن می کنه. حالا مشکل اینه که من می خوام توی eventFilter بتونم event هایی که مربوط به فوکوس leftMenuWidget هست رو پاسخ بدم. ولی مشکل اینه که هیچ event دریافت نمی کنم ولی وقتی که leftMenuView رو به eventfilter وصل می کنم event ها رو دریافت می کنم. کسی می تونه کمکم کنه که بتونم از containter رویداد مربوطه اش رو بگیرم
  3. کامبیز اسدزاده

    شرایط و مجوز‌های تحت کیوت نوع مجوز و ویژگی‌ها LGPLV3 GPLV2/GPLV3 مجوز تجاری هزینه رایگان رایگان شروع هزینه از ۴۵۹ دلار در هر ماه حقوق و خدمات پشتیبانی جامعه پشتیبانی رسمی از طرف شرکت کیوت شما می‌توانید نرم‌افزارتان را به صورت خصوصی نزد خود نگه‌دارید. در صورتی که اپلیکیشن خود را به صورت لینک-پویا (Dynamic-link) کامپایل کرده باشید، می‌توانید آن را خصوصی برای خود حفظ کنید. بدون ارائه مکانیزم خاصی برای کتابخانه‌های کیوت (می‌توانید همیشه از کامپایل استاتیک) بهره‌مند شوید. نیازی برای ارائه کپی از مجوز و صراحت از استفاده کیوت نمی‌باشد. نیازی برای ارائه یک کپی (نسخه) از سورس کُد کیوت برای مشتری را ندارید. حقوق کامل برای تغییرات در کد منبع کیوت و سفارشی آن اجبار و تاکید بر (مدیریت حقوق دیجیتال) مشاهده‌ جزئیات در مجوز LGPv3 مشاهده‌ جزئیات در مجوز LGPv3 اجبار و تاکید بر (پیاده سازی پروتکل های نرم افزاری) مشاهده‌ جزئیات در مجوز LGPv3 مشاهده‌ جزئیات در مجوز LGPv3 می‌توانید دستگاه‌های مصرف کننده‌ی بسته شده ایجاد کنید ماژول‌ها ماژول Qt Essentials افزونه‌های عمومی کیوت ماژول Qt Charts ماژول Qt Data Visualization ابزار‌ها محیط توسعه یکپارچه‌ی نرم‌افزاری Qt با تمامی قابلیت‌ها ابزار‌های مستند‌ سازی ابزار داخلی سازی (درونی ساز) ابزار طراحی Qt Quick Designer ابزار Qt Quick Profiler ابزار توسعه و پیشرفت در Visual Studio ابزار Qt Quick 2D Renderer، استفاده بدون OpenGL ابزار کامپل Qt Quick Compiler ابزار‌ها و راه حل‌های کیوت برای ساخت دستگاه‌های اِمبِد ابزار Qt Virtual Keyboard خطایابی (دیباگینگ مستقیم) بر روی دستگاه ابزار Boot to Qt نصب و استقرار با یک کلیک در دستگاه و پلتفرم هدف دستورالعمل‌های پروژه Yocto برای سفارشی سازی ایمیج‌های از پیش ساخته شده توجه داشته باشید که معمولاً شرکت کیوت بعضی از ویژگی‌های موجود را که مختصِ نسخه‌ی تجاری است بعضاً در نسخه‌های جدید تحت مجوز‌های LGPv3 منتشر می‌کند. در این اواخر نمونه‌ای از آن‌ها Qt Quick Compiler بود که در نسخه‌ی ۵.۱۱.۰ منتشر شد.
  4. کامبیز اسدزاده

    در این پست قصد داریم در رابطه با نحوه‌ی نصب و راه‌اندازی محیط کیوت جهت توسعه‌ی نرم‌افزار توضیح دهیم. بنابراین مراحل آن به ترتیب به صورت زیر خواهد بود. انتخاب پلتفرم توسعه (ویندوز، مک یا لینوکس) انتخاب و دانلود نسخه‌ی مورد نظر برای محیط توسعه نصب و راه اندازی محیط توسعه پیکربندی و اجرای اولین برنامه ساخت و استقرار برنامه طبق توضیحات بالا، ابتدا وارد بخش مرکز دریافت در مرجع شده و نسخه‌ی Qt مربوط به پلتفرم مورد نظر خود را دریافت کنید. برای این منظور از این بخش وارد شوید (دقت کنید که حتما وارد حساب کاربری خود شده باشید). نکته : نسخه‌ی موجود در این مرجع به‌روز‌ترین نسخه‌ی ممکن خواهد بود. نکته‌ ۲ : در محیط ویندوز حتماً توجه داشته باشید که باید Visual Studio نصب باشد. اگر به خاطر حجم آن قادر به نصب نیستید سعی کنید نسخه‌ی Build Tools را نصب نمایید. این بسته شامل کامپایلر‌ها و SDK های ویندوز است که برای کار با سی++ به آن‌ها نیاز خواهید داشت. در صورتی که یکی از این دو پیشنهاد را نصب نکنید ممکن نیست که بتوانید برنامه‌ای را کامپایل کنید. نکته ۲ : در محیط لینوکس مطمئن باشید که GCC نصب است. همچنین دستورات زیر را قبل از نصب کیوت اعمال کنید تا پکیج‌های مورد نیاز نصب شود. sudo apt-get install build-essential libgl1-mesa-dev نکته ۳ : در محیط macOS حتماً باید Xcode نصب باشد. جهت نصب کیوت فایل نصبی آن را در محیطی که هستید اجرا کنید تا برنامه نصبی اطلاعات مربوطه را بررسی نماید. در ادامه گزینه‌ی Next را بزنید، در صورتی که مایل هستید اطلاعات ثبت‌نام (جهت ثبت اطلاعات در سرور Qt) را وارد کنید. در غیر این صورت گزینه‌ی Skip را بزنید و ادامه دهید. در مرحله‌ی بعد گزینه Next را زده و مسیر نصبی خود را انتخاب کنید، سعی کنید همان مسیر پیشفرض را تایید کنید. مهمترین بخشی که بسیاری از کاربران در مورد آن سوال می‌کنند این مرحله است که چه گزینه‌هایی را باید برای نصب انتخاب کنیم. در این بخش تمامی گزینه‌ها را انتخاب کنید به جز گزینه‌هایی که منسوخ شده اند و با واژه‌ی (Deprecated) مشخص شده اند و قرار است در نسخه‌های بعدی حذف شوند. همچنین گزینه‌هایی که مقابل آن‌ها TP نوشته شده است مخفف Technology Preview است به معنی اینکه این ماژول یا پلاگین به صورت آزمایشی فعلاً در این پکیج قرار گرفته اما نهایی نشده است. در بخش Tools تمامی گزینه‌ها را انتخاب کنید همه‌ی آن‌ها نیاز است. همچنین برای اینکه بتوانید از دیتابیس و پلاگین‌هایی مانند QMySQL استفاده کنید باید گزینه‌ی Source را انتخاب کنید تا بعداً امکان ساخت این ماژول فراهم شود. توجه کنید که در این مثال گزینه‌های MSVC 2015 انتخاب نشده است. دلیل آن است که ما روی سیستم از نسخه‌ی ۲۰۱۷ ویژوال استودیو استفاده می‌کنیم و ابزار‌های ساخت ویرایش ۲۰۱۷ تعبیه شده اند. بنابراین با توجه به نسخه‌ی VS آن‌ها را انتخاب کنید. مواردی که شامل گزینه‌های UWP هستند به خاطر آن است که شما بتوانید تحت کیوت برنامه‌های Universal Windows Platform را استقرار و اجرا کنید. همچنین جهت امکان تولید برنامه‌های اندروید و ویندوز فون گزینه‌های Android ARMv7 و UWP ARMv7 نیاز هستند. دقت کنید که گزینه‌ی x86 برای اندروید معمولاً برای نسخه‌ی مجازی دسکتاپ مورد استفاده قرار می‌گیرد. در پلتفرم‌های لینوکس و مک‌او‌اس گزینه‌های مرتبط با MSVC وجود ندارد. تنها با این تفاوت که در پلتفرم مک گزینه‌ی Android و iOS نیز موجود هستند و شما می‌توانید با انتخاب گزینه‌ی iOS آن را به محیط توسعه خود اضافه کنید. در نهایت شرایط و مجوز‌های کیوت را تایید کنید که در ادامه آمده است: توجه داشته باشید که بر اساس انتخاب‌هایی که کرده‌اید فضای لازم برای نصب Qt به صورت زیر به اطلاع شما رسانده می‌شود که در این بخش چیزی حدود ۱۰ گیگابایت است. بر روی Install کلیک کنید و مراحل نصب را نهایی سازی نمایید. بعد از نصب سیستم توسعه‌ی شما آماده‌ی استفاده است. یک پروژه جدید ساخته در صورتی که مراحل توضیح داده شده را به درستی انجام داده باشید انتخاب کامپایلر برای شما به درستی اعمال خواهد شد. در ادامه برای ساخت و اجرای برنامه نوع کامپایلر را انتخاب و کامپایل کنید. در نهایت برنامه بدون مشکلی اجرا خواهد شد. همچنین مرحله‌ی آخر، جهت بررسی نحوه‌ی استقرار و اجرای برنامه این بخش را مطالعه کنید.
  5. xarion

    سلام. من چند وقتی هست که می خوام برای اندروید با کیوت یه اپ ساده رو Run کنم و درگیر خیلی چیزا بودم تا به این مرحله برسم. الان می خوام با مشخصات زیر یه از یه نمونه کد Qt برای اندروید اجرا بگیرم ولی توی Build به مشکل بر خوردم. Qt 5.11.1 Compiler: MinGW 4.9 Kit: android arm7 JDK: 8 NDK:17 SDK: Update to the last version که در موقع build با این خطا مواجه می شم. Exception in thread "main" java.util.zip.ZipException: error in opening zip file at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.(ZipFile.java:225) at java.util.zip.ZipFile.(ZipFile.java:155) at java.util.zip.ZipFile.(ZipFile.java:169) at org.gradle.wrapper.Install.unzip(Install.java:215) at org.gradle.wrapper.Install.access$600(Install.java:27) at org.gradle.wrapper.Install$1.call(Install.java:75) at org.gradle.wrapper.Install$1.call(Install.java:48) at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69) at org.gradle.wrapper.Install.createDist(Install.java:48) at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107) at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61) Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.impl Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.Fusion.impl Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.Imagine.impl Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.Material.impl Warning: QML import could not be resolved in any of the import paths: QtQuick.Controls.Universal.impl Building the android package failed! 03:39:16: The process "C:\Qt\5.11.1\android_armv7\bin\androiddeployqt.exe" exited with code 14. Error while building/deploying project gallery (kit: Android for armeabi-v7a (GCC 4.9, Qt 5.11.1 for Android armv7)) When executing step "Build Android APK" ممنون می شم اگر بتونید راهنمایی کنید.
  6. کامبیز اسدزاده

    کتابخانه‌ی Qt

    نگارش 5.11.1

    4 دریافت

    کیوت (به انگلیسی: Qt) مجموعه‌ای از کتابخانه‌ها و سرآیندهای نوشته‌شده به زبان سی++ است که به برنامه‌نویس امکان توسعه آسان نرم‌افزارهای کاربردی را می‌دهد. کیوت شامل چندین کلاس برای کار با واسط گرافیکی، چندرسانه، ابزارهای پایگاه‌داده، شبکه و … است. نرم‌افزارهای نوشته شده با ابزار کیوت قادرند تا با استفاده از یک کامپایلر زبان سی‌پلاس‌پلاس برای طیف وسیعی از سیستم‌عامل‌ها از جمله گنو/لینوکس (نسخه‌های رومیزی و وسیله‌های قابل حمل)، ویندوز، ویندوز CE، مک‌اواس و … همگردانی شوند. بدین ترتیب حمل نرم‌افزار نوشته شده بدون تغییر در متن کد نوشته شده امکان‌پذیر است. از کیوت در زبان‌های برنامه‌نویسی متعددی مانند سی++ و جاوا و پایتون می‌توان استفاده‌کرد. جهت مشاهده‌ی مباحث مرتبط با این کتابخانه به این بخش مراجعه کنید.

    رایگان

  7. کامبیز اسدزاده

    با سلام، در این پُست ما قصد داریم در رابطه با نحوه‌ی آغاز یادگیری کیوت توضیح دهیم. اینکه به عنوان یک تازه‌کار چه پیش‌نیازاتی را باید مطالعه و در نهایت چگونه و تحتِ چه منابعی این کتابخانه‌ی قدرتمند را بیاموزیم. همچنین پاسخ برخی از سوالات شما را در این پُست به طور شفاف ارائه شده است که طیِ چندین سال سوال علاقه مندان بوده‌اند . پیش‌نیازات برای یادگیری کتابخانه‌ی Qt دانش متوسط و به بالا در رابطه با زبان‌ برنامه‌نویسی مُدرن سی‌پلاس‌پلاس نسخه‌‌های ۱۱ به بعد، (بنابراین اگر شما هیچ اطلاعی در رابطه با ساختار برنامه‌های سی‌پلاس‌پلاس و نحوه‌ی عملکرد آن ندارید، شانس موفقیت شما بسیار پایین خواهد بود و ممکن است برنامه‌ی تولید شده‌ی شما به بدترین شکل ممکن پیاده سازی شود). ما پیشنهاد می‌کنیم قبل از آن با زبان سی‌پلاس‌پلاس آشنا شوید. آشنایی با کامپایلر و نحوه‌ی عملکرد آن در پلتفرم‌های مختلف از جمله ویندوز، مک‌او‌اِس، لینوکس، اندروید و آی‌او‌اِس آشنایی با برنامه‌نویسی در معماری‌های مختلف مانند x86، x64، Arm و غیره... آشنایی با معماریِ سیستم‌عامل‌ها، برای مثال اگر قرار است از خاصیت چند-سکویی کیوت استفاده کنید تا یک برنامه‌ی تحت اندروید را توسعه دهید، در این صورت باید در نظر داشته باشید که شما بدون درکِ معماری سیستم‌عامل اندروید و پیکربندی برنامه در مراحل توسعه نمی‌توانید به راحتی از پسِ این کار بر آیید. آشنایی با اصطلاحات و مفاهیم تجربه‌ی کاربری و رابط کاربری جهت طراحی مناسب با فناوری‌های Qt Widget و Qt Quick (در صورتی که علاقه‌مند به طراحی ظاهر برنامه‌های خلاقانه دارید) آشنایی Xml و JavaScript برای طراحی رابط گرافیکی تحت فناوری‌های فوق آیا کیوت یک زبان برنامه‌نویسی است، چرا نحوِ (Syntax) آن با سی‌پلاس‌پلاس استاندارد فرق می‌کند؟ خیر، کیوت ابتدا به عنوان یک کتابخانه‌ی رابط گرافیکی کاربر توسعه داده شده است که بعد‌ها برای توسعه اهدافِ بیشتری شامل کتابخانه‌های شبکه و غیره شده است که در قالب یک چهارچوب (فریم‌وُرک) که تحت زبان برنامه‌نویسی سی‌پلاس‌پلاس برای این زبان توسعه یافته است و در زمینه‌های مختلفی کاربرد‌های فراوان دارد. دلیل زیبایی و ظاهر ساده‌ی آن ساختار بسیار قدرتمند آن است که موجب شده همانند چهارچوب‌های قدرتمند دیگری خودنمایی کند. (اما قول این ظاهر و سادگی آن را نخورید، چون با سی‌پلاس‌پلاس طرف هستیم ) آیا کیوت از سرویس‌ها و قابلیت‌های اختصاصی‌ِ اپلیکیشن‌های اندروید و آی‌او‌اِس را به طور کامل پشتیبانی می‌کند؟ خیر، هیچ ابزاری به صورت چند-سکویی فعلاً (تاکید می‌کنیم - فعلاً تا به این تاریخ) وجود ندارد که تمامی امکانات اختصاصی این پلتفرم‌ها را پشتیبانی کند. اما این به این معنی نیست که جواب منفی خواهد بود، لذا شما در برنامه‌نویسی سی‌پلاس‌پلاس به راحتی می‌توانید برای پلتفرم‌های فوق با سرویس‌های آن‌ها ارتباط برقرار کنید اما! این کار کمی نیاز به دانش فنی بالایی خواهد داشت. برای مثال (دسترسی به سرویس‌های اندروید یا آی‌او‌اس) با ترکیب کُد‌های آبجکتیو-سی و جاوا امکانپذیر است. این کار به راحتی قابل انجام خواهد بود و کافی است شما در رابطه با نحوه‌ی ترکیب کُد‌های این زبان‌ها مطلع باشید. کیفیت خروجی برنامه‌های تحت کیوت چگونه است؟ اگر شما واقعاً یک برنامه‌نویسِ ماهرِ سی‌پلاس‌پلاس باشید می‌توانید برنامه‌ای را تولید کنید که بسیار خوش دست‌تر و سریعتر از برنامه‌های پیشفرضِ پلتفرم‌ها باشد. اگر غیر از این باشد برنامه‌ی شما بسیار بد و کُند عمل خواهد کرد و بهتر است سراغ زبان‌های بومیِ (هر پلتفرم) بروید. هرچند سی‌پلاس‌پلاس یک زبان بومی برای تمامی پلتفرم‌ها محسوب می‌شود اما این ریسک برای افراد مبتدی پیشنهاد نمی‌شود. معمولاً برنامه‌های گسترده و عظیم توسط سی‌پلاس‌پلاس توسعه داده می‌شوند که برنامه‌نویسان آن واقعا حرفه‌ای و با قوانین این زبان آشنا هستند. آیا برای تولید برنامه‌های مک و آی‌او‌اس نیاز به سیستم خاصی داریم؟ بله، شما بدون وجود سیستم‌عامل مک نمی‌توانید برنامه‌ای را بر روی دستگاه‌های اپِل کامپایل کنید. این امر مستلزمِ سیستم عامل اختصاصی این شرکت بوده و باید توسعه دهنده دارای حساب کاربری معتبر سالانه باشد تا بتواند برنامه‌ی خود را بر روی دستگاه‌های مورد نظر اجرا کند. در غیر این صورت تنها می‌تواند برنامه‌ی خود را بر روی سیستم خود مورد آزمایش و خطا قرار دهد. آیا کیوت در ایران بازار کار مناسبی دارد، آیا ارزش دارد من این کتابخانه را یاد بگیرم؟ خوشبختانه کیوت بیشتر از ۲۰ سال است که در دنیا مورد استفاده قرار می‌گیرد و کشور‌های پیشرفته از آن استقبال می‌کنند. در کشور ما مدتی است این کتابخانه مورد استقبال قرار گرفته و بسیاری از شرکت‌ها مایل به ساخت و توسعه‌ی برنامه‌های خود تحت این کتابخانه هستند که برخی از دلایل آن (بهره بردن از قابلیت‌های زبان سی و سی‌پلاس‌پلاس و ویژگی‌های خاص آن است). آیا کیوت از پلتفرم وِب پشتیبانی می‌کند؟ کیوت از تمامی پلتفرم‌ها پشتیبانی می‌کند، مخصوصاً با پشتیبانی از ماژول‌های QtWebEngine و QtWebAssembly این امر امکانپذیر است که برنامه‌های خود را تحت فناوری‌های وِب نیز توسعه دهید. آیا من حتماً باید به زبان سی‌پلاس‌پلاس مسلط باشم؟ ما بر این تاکید نمی‌کنیم که شما حتماً باید سی‌پلاس‌پلاس را کامل یاد بگیرید، این زبان به قدری گسترده است که نمی‌توان درباره‌ی آن به این راحتی مدعی شد. اما قوانین و اصول اولیه و عامیانه‌ی زبان بسیار نیاز است. کتاب‌ها و مقالات مربوط به این زبان را بیاموزید و تا جایی که می‌توانید خود را ارتقاء دهید. من دانشجو یا متخصص رشته‌ی کامپیوتر نیستم، آیا می‌توانم این کتابخانه را یاد گرفته و از آن در توسعه برنامه‌های مورد نظر خود استفاده کنم؟ بله، اما ممکن است در تجزیه و تحلیل رفتار‌های سیستم‌عامل، مدیریت خطاها و پیکربندی ابزار‌های تخصصی (برنامه‌نویسی) با مشکلاتی مواجه شوید که تنها متخصصات این رشته می‌توانند آن را درک و حل کنند. آیا واقعاً حجم برنامه‌های کیوت نسبت به Net. یا Java بیشتر است !؟ خیر، به طور ذاتی برنامه‌های توسعه داده شده توسط سی‌++ دارای کمترین حجم برنامه هستند، معمولاً کتابخانه‌های استاندارد این زبان به صورت پیشفرض بر روی سیستم عامل‌ها تعبیه شده و در دسترس قرار دارند. اما شما در ویندوز زمانی که با دات‌نت برنامه‌نویسی می‌کنید، فریمورک مربوطه از قبل بر روی سیستم عامل ویندوز نصب بوده و بدون آن هیچ برنامه‌ی نوشته شده توسط دات‌نِت قابل اجرا نمی‌باشد. اما چون از قبل این کتابخانه بر روی سیستم‌عامل تعبیه شده است شما نیاز به تنها داشتن فایل اجرایی دارید و نیازی نیست فریم‌ورک دات‌نت را در کنار فایل اجرایی خود مستقر کنید. بنابراین حجم مربوط به چهارچوب به چشم نیامده و اینطور به نظر می‌رسد که برنامه‌های تحت دات نت بسیار سبُک‌تر هستند! متاسفانه این تفکری اشتباه است برنامه‌های تحت سی‌پلاس‌پلاس نسبت به زبان‌های دیگر کم حجم‌تر و سبُک‌تر بوده و شما کافی است فایل‌های مربوط به کتابخانه را در کنار برنامه‌ی خود داشته باشید. در رابطه با کتابخانه‌ی Qt نیز باید گفت کیوت به عنوان یک چهارچوب مانند دات نت شامل کلاس‌ها و ماژول‌هایی است که باید همانند دات نت بر روی سیستم عامل تعبیه شود اما چون اینکار به صورت جداگانه در کنار برنامه‌ی شما قرار می‌گیرد اینگونه تصور می‌شود که برنامه‌های مبتنی بر کیوت نسبت به دات نت از حجم بیشتری برخوردار هستند. این کاملاً طبیعی بوده و به عنوان نکته ضعف نیست. من علاقه‌ی خاصی به سی‌پلاس‌پلاس دارم و می‌خواهم کیوت را یاد بگیرم، از کجا و چه تحت منابعی باید شروع کنم؟ خوشبختانه کیوت از لحاظ مستندات بسیار جامع است و شما می‌توانید از آدرس https://doc.qt.io به تمامی مستندات مورد نیاز خود دسترسی داشته باشید. همچنین اگر نگران اینترنت خود هستید و یا به آن دسترسی مداوم ندارید می‌توانید از داخل محیط توسعه‌ی کیوت کریتور از بخش Help آن مستندات مورد نیاز خود را به صورت آفلاین دریافت کنید. من دنبال کتاب آموزشی کیوت هستم، آیا کیوت کتاب‌های آموزشی مفیدی در این زمینه از مقدمه تا پیشرفته دارد؟ بله، در این بخش شما می‌توانید کتاب‌هایی را در این زمینه مشاهده کنید که مرجع رسمی‌ِ کیوت آن‌ها را تایید کرده است. من به زبان انگلیسی تسلط کافی ندارم، ترجیح می‌دهم که از مراجع فارسی معتبر استفاده کنم، آیا کیوت در این زمینه منابعی دارد که معتبر باشند؟ خوشبختانه کیوت به قدری طعمِ جذابی برای برنامه‌نویسان دارد که ما اقدام به تالیف و پیاده سازی آموزش‌هایی در این زمینه کرده‌ایم، شما می‌توانید دو کتاب مقدماتی و پیشرفته‌ی این کتابخانه را تهیه کنید که در کتاب‌خانه‌ی ملی کشور به صورت رسمی به ثبت رسیده اند و عبارتند از نسخه‌‌های مقدماتی برای Qt Widgets و نسخه‌ی پیشرفته برای Qt Quick (این کتاب‌ها تجاری هستند). آیا مقالات یا کتاب‌های آموزشی رایگانی هم برای کیوت وجود دارد؟ خوشبختانه به لُطف برخی از دوستان برخی از مطالب در قالب PDF جمع آوری شده است. فایل آن را از این بخش می‌توانید دریافت کنید. همچنین کتاب‌های تجاری در برخی از روز‌های ویژه شامل تخفیف قرار می‌گیرند که مُختص کاربران رسمی مرجع می‌باشد. آیا لیستی برای مشاهده‌ی برنامه‌های توسعه یافته توسط Qt داریم؟ بسیاری از برنامه‌های قدرتمند و خارق‌العاده‌ای توسط سی‌پلاس‌پلاس توسعه داده می‌شوند که می‌توان لیست عظیمی از آن‌ها را نام برد. اما در این میان لیستی از برنامه‌هایی که تحت کیوت توسعه داده شده‌اند در این بخش آمده است. برای یادگیری استاندارد سی‌پلاس‌پلاس و تقویت مهارت خود در این زبان کدام مقالات و کتاب‌ها را پیشنهاد می‌کنید؟ علاوه بر این که شما می‌توانید در مرجع به دنبال آموزش‌های مرتبط با این زبان باشید، پیشنهاد ما این است که از مراجع رسمی آن نیز استفاده کنید. برخی از آن‌ها به صورت زیر آمده‌اند: cppreference.com http://www.cplusplus.com/ Learn C++ C++ Tutorial | SoloLearn: Learn to code for FREE! Learn C++ (Introduction and Tutorials to C++ Programming) اگر سوالی داشته باشم کجا می‌توانم آن را مطرح کرده و به پاسخ خود برسم؟ شما می‌توانید برای سوال و پرسش در انجمن‌های این مرجع اقدام کنید. اساتید و دوستان با تجربه سوالات شما را دریافت و مناسبترین پاسخ‌ها را ارائه خواهند داد. همچنین شما می‌توانید ما را در گروه‌ و کانال تلگرامی دنبال کنید. نکته (در این پُست بنابر اهداف فرهنگ‌سازی برای حق چاپ) فایل‌های مرتبط با کتاب‌های آموزشی زبان اصل و یا زبان فارسی قرار داده نشده است. کتاب‌های زیادی در رابطه با این زبان وجود دارند که به زبان اصلی می‌باشند اما برای احترام به نویسنده‌ی آن‌ها از ارسال چنین فایل‌هایی معذوریم. این پُست ممکن است ویرایش یا به‌روز رسانی شود.
  8. کامبیز اسدزاده

    کتاب آموزش مقدماتی ++C همراه Qt (مقدماتی)

    نگارش 3.0.0

    هدف از این آموزش ها آشنایی با امکاناتی که در Qt میتوان استفاده کرد می‌باشد، که شامل کد نویسی کمتر، خروجی و طرح های بیشتر و در نهایت استفاده در پلتفرم های مورد مختلف است. لذا جهت بهره مندی از این کتابخانه ما با در نظر گرفتن اینکه علاقه مندان با زبان ++C آشنایی لازم را دارند منتشر کرده ایم. بنابراین در صورتی که علاقه مندان اطلاعات کافی در رابطه با خود زبان ندارند پیشنهاد میکنیم ابتدا اقدام به تهیه و مطالعه آموزش های لازم در ++C نمایند که برخی از لینک های رسمی و استاندارد آن را در زیر اعلام نموده ایم. عنوان این آموزش "برنامه نویسی ++C همراه با کتابخانه های Qt 5.7.x (سطح مقدماتی ویرایش ۳) می‌باشد که به صورت زیر فهرست بندی شده است: فصل اول مقدمه کتابخانه Qt قابلیت ها در طراحی فناوری Qt Quick و QML نسخه های کیوت مجوز های موجود در این کتابخانه محیط های توسعه کیوت ویژگی های کیوت پشتیبانی از انواع سیستم عامل ها نصب و پیکربندی Qt فصل دوم انواه پروژه و ایجاد آن انواع پروژه ها ایجاد پروژه فصل سوم ساده ترین برنامه معرفی و کار با Signal و Slot ها و Event ها معرفی و کار با نمایش Windows معرفی و کار با لایه ها زبانه ها و بدنه های در طراحی معرفی و کار با قابلیت های HTML و CSS در طراحی فصل چهارم معرفی و کار با لایه های افقی و عمودی معرفی و کار با لایه های Grid در طراحی فرم معرفی و کار با جدا کننده ها Splitter فصل پنجم معرفی و کار با دایرکتوری ها معرفی و کار با فایل ها / خواندن و نوشتن در آن ها فصل ششم معرفی و کار با برچسب ها Label معرفی و کار با دکمه ها Button معرفی و کار با کنترل ورودی LineEdit معرفی و کار با چک باکس CheckBox معرفی و کار با RadioButton معرفی و کار با Combobox معرفی و کار با لیست ها / ListWidget معرفی و کار با لیست های درختی / TreeWidget معرفی و کار با Action ها معرفی و کار با Slider و Progress ها معرفی و کار با Statusbar در فرم فصل هفتم معرفی و کار با MessageBox معرفی و کار با Timer معرفی و کار با Thread ها فصل هشتم معرفی و کار با Map معرفی و کار با Hash معرفی و کار با QStringList لیست رشته ای فصل نهم معرفی و کار با الگوریتم های معرفی و کار شبکه / دانلود فایل بر اساس پروتکل های HTTP و FTP معرفی و کار با باینری و سریالیز کردن آبجکت ها معرفی و کار با TextStream ها فصل دهم مقایسه انواع حالت های کامپایل در Qt نحوه افزودن دیگر کتابخانه های C++‎‎ در محیط Qt Creator و استفاده همراه با کتابخانه Qt نحوه خروجی گرفتن / گسترش (Deployment) در Qt مقایسه و پیکربندی دو موتور قدرتمند OpenGL و ANGLE در پروژه مقایسه حجمی بین پروژه های ساخته تحت کتابخانه های Qt در ++C و .NET Framewok در #C درایور دیتابیس هایی که تحت این کتابخانه پشتیبانی می‌شوند حق نشر کتاب و اهداف در نسخه ی بعدی کتاب توجه : در داشتن هر گونه انتقاد و پیشنهاد در رابطه با این کتاب با آدرس شخصی نویسنده (kambiz.ceo@gmail.com) مکاتبه نمایید. نکته : این کتاب در روز‌های خاص ممکن است شامل تخفیف قرار بگیرد. نکته دوم : کسانی که این کتاب را یک بار خریداری می‌کنند نسخه‌ی به روز رسانی شده آن را به صورت رایگان می‌توانند دریافت کنند.

    200٬000 ریال

  9. کامبیز اسدزاده

    انتشار نسخه‌ی بتا ۲ از کیوت کریتور ۴.۷ بخش C++ ویژگی‌ مهم این نسخه سازگاری و هماهنگی کامل برای پشتیبانی از کلنگ (Clang) در سی++ می‌باشد. قبل از هر چیز باید اشاره داشته باشیم به اینکه مدل کدینگ به صورت پیش فرض در کیوت کریتور ۴.۷ بر پایه Clang Model تعبیه شده است که به عنوان یک نکته عطف پس از سال‌ها تجربه و توسعه به دست آمده است. به روز رسانی های دیگری در بخش بک اند صورت گرفته است که مرتبط با Clang 6.0 می‌باشد که بهبود‌های بسیاری را به ارمغان می‌آورد. بخش QML مدل کد در QML در حال حاضر شامل حداقل پشتیبانی های مرتبط با شمارنده های تعریف شده از طرف کاربر می باشد که یکی از ویژگیهای جدید در کیوت ۵.۱۰ به بعد بود.علاوه بر این برخی از اشتباهات موجود در این بخش نیز اصلاح شده اند. ویژگی یکپارچه سازی شده برای آزمایش کد در صورتی که نمایشگر ماوس در ویرایستار سی++ در داخل یک تابع آزمایشی قرار گیرد، شما می‌توانید به صورت جداگانه آن را مورد آزمایش قرار دهید که با راست کلیک بر روی منوی محتوا تابع گزینه‌ی (Run Test Under Cursor) قابل انتخاب و آزمایش خواهد بود. دیگر بهبود‌ها گزینه های کیت در بالاترین بخش از تنظیمات خود قرار گرفته اند، بنابراین اولین کیت در اولین ردیف از لیست قرار گرفته است. در بخش نمایه از فایلها شما میتوانید پوشه ای بسازید. به صورت پیشفرض از این پس می توانید پوشه ها را قبل از فایل ها نمایش دهید، اما شما می‌توانید با انتخاب گزینه ای در منو نمایش‌های قبلی را رد کنید و یا از روش مرتب سازی بر اساس حروف الفبا استفاده کنید. تغییرات دیگر در این بخش آمده اند.
  10. کامبیز اسدزاده

    کیوت برای وب‌ اسمبلی

    وب‌اسمبلی (WebAssembly) یا wasm یک زبان برنامه‌نویسی سطح پایین برای استفاده در مرورگر است که در حال حاضر در حال توسعه است. هدف اولیهٔ آن پشتیبانی حمایت از کامپایل از سی و سی++ است هرچند که قرار است از سایر زبان‌ها نیز حمایت شود. حال کتابخانه‌ی Qt این امکان را تحت ماژول Qt WebAssembly فراهم می‌کند تا برنامه‌‌ی نوشته شده توسط سی++ و کیوت در محیط مرورگر قابل اجرا باشند. این ویژگی در حال حاضر به عنوان پیش‌نمایش برای نسخه‌ی Qt 5.11 برنامه‌ریزی شده است. کیوت برای ساخت وب اسمبلی دستور‌العمل‌هایی را در اینجا آورده است. قبل از هرچیز شما نیاز دارید تا ابزار کامپایلر emsdk را آماده و نصب نمایید. بنابراین دستورات زیر را به ترتیب اجرا کنید. # Get the emsdk repo git clone https://github.com/juj/emsdk.git # Enter that directory cd emsdk # Fetch the latest registry of available tools. ./emsdk update # Download and install the latest SDK tools. ./emsdk install latest # Make the "latest" SDK "active" for the current user. (writes ~/.emscripten file) ./emsdk activate latest # Activate PATH and other environment variables in the current terminal source ./emsdk_env.sh در صورتی که در پیکربندی نیاز به راهنمایی دارید از راهنمای اصلی آن استفاده کنید و یا در همین مرجع در تالار‌های گفتمان از ما بپرسید. ما به این ابزار به عنوان ابزار کامپایل-چند‌منظوره استفاده خواهیم کرد. برخی از اسکرین شات‌ها از نتایج خروجی این ماژول به صورت زیر آمده‌اند: یک بازی ساده به نام Colliding mice ویژگی پنجره‌های گفتگو به نظر می‌رسد پنجره‌های ساخته شده توسط QOpenGLWindow با فریم ریت ۶۰ به خوبی عمل می‌کنند. البته به نظر می‌رسد QOpenGLWidget فعلاً شامل برخی از مشکلات است که حل خواهند شد. کامپایلر Emscripten که به عنوان یک کامپایلر منبع‌باز که بک اند آن بر روی LLVM اجرا می‌شود کُد‌های OpenGL را به WebGL ترجمه می‌کند. بنابراین محدودیت‌هایی در نسخه‌های دسکتاپ و اِمبد‌ها وجود خواهد داشت. نمونه مثال پنجره تحت OpenGL در کنار این‌ها QtBases و QtDeclarative که از شاخه‌ی Wip/Web Assembly استقاده می‌کنند، ماژول‌های شناخته شده‌ی کیوت به صورت زیر به کار گرفته می‌شوند: QtCharts QtGraphicalEffects QtQuickControls QtQuickControls2 QtWebSockets QtMqtt (با استفاده از وب سوکت) برای استفاده از QtMqtt، شما باید کلاس WebSocketIODevice از نمونه مثالی با نام (websocketsubscription) وارد برنامه‌ی خود کنید. نمونه مثال‌های ساعت در QML نکته: از آن‌جا که جاوا‌اسکریپت و وب‌اسمبلی تنها یک نخ (Thread) دارند، QtDeclarative تنها برای یک نَخ (ترد) کار خواهد کرد. در نظر داشته باشید که ماژول‌های QtCharts QtGraphicalEffects، QtQuickcontrols، QtQuickControls2 بدون هیچ تغییراتی کار می‌کنند. ماژول QtChart از نمونه مثال oscilloscope این پروژه به عنوان یک رویکرد جدید و ویژگی‌ای که در آینده می‌تواند مفید باشد در حال توسعه است. بخش ویکی رسمی آن در این لینک آورده شده است.
  11. کامبیز اسدزاده

    معرفی ابزار کیوبس (Qbs) با آوای (“Cubes”) همانند qmake و cmake یک ابزار بسیار ساده و قدرتمند برای ساخت پروژه در پلتفرم‌های مختلف می‌باشد. این ابزار قابلیت استفاده در هر نوع پروژه ای را دارد به‌گونه‌ای که مهم نیست زبان‌برنامه نویسی٬ ابزار‌ها و حتی کتابخانه‌های مورد استفاده چه چیزی باشند. کیوبس یک ابزار همه کاره است که یک نمودار ساخت از پروژه‌های سطح بالا مانند (qmake و cmake) فراهم می‌کند که علاوه بر آن وظیفه اجرای دستورات نمودار ساخته شده در سطح پایین را مانند (make) فراهم می‌کند. در این کتاب ما به پیش معرفی آن می‌پردازیم چرا که قرار است در نسخه ۶ کیوت جایگزین نوع .pro از qmake باشد. کیوبس برنامه‌ها را بر پایه‌ی اطلاعاتی می‌سازد که در قالب یک فایل QML فراهم می‌شوند. هر فایل پروژه مشخص می‌کند که پروژه می‌تواند شامل چندین محصول باشد و شما نوع پروژه می‌توانیدمشخص کنید که یکی از انواع : نرم افزار، کتابخانه و غیره باشد. مشخصات سیستم مورد نیاز جهت استفاده از ابزار QBS حداقل نسخه ۵.۶.۰ به بعد خواهد بود. این ابزار همراه با Qt ارائه می‌شود. معرفی ساختار QBS در قالب QML کیوبس برای فایل پروژه خود از پسوند (*.qbs) استفاده می‌کند تا بتواند محتوای موجود در یک پروژه را معرفی کند. به طور کلی یک پروژه شامل چندین محتوا از محصول (پروژه) می‌باشد که در ادامه به آن‌ها اشاره شده است. یک محصول هدفی از روند ساخت است٬ به طور معمول یک برنامه کاربردی٬ کتابخانه و یا شاید یک چیز دیگر می‌تواند هدف آن باشد. جهت بررسی و مدیریت Qbs وارد بخش Setting یا Perefrences شوید و زبانه Qbs را انتخاب کنید تا در این بخش به نسخه و پیکربندی مقادیر مربوط به Qbs دسترسی داشته باشید. مباحثی که در این پست آموزشی پوشش داده خواهد شد: نحوه‌ی استفاده معرفی انواع پروژه‌ها معرفی برخی از پر کاربرد‌ترین آیتم‌های موجود در کیوبس مانند: پروژه Project زیر پروژه SubProject ویژگی‌ها (خواص‌ها) Properties اپلیکیشن Application اپلیکیشن سی‌پلاس‌پلاس CppApplication کتابخانه (پویا) DynamicLibrary کتابخانه (ایستا) StaticLibrary محصول Product پروفایل Profile گروه‌‌بندی Group وابستگی‌ها Depends و ... معرفی ماژول‌های پر کاربرد در کیوبس مانند: ماژول cpp جهت پیکربندی و پشتیبانی از C++ و ویژگی‌های آن در کیوبس پیکربندی ماژول‌های کیوت پیکربندی ویژگی‌های پردازنده پیکربندی اختصاصی اندروید پیکربندی اختصاصی محصولات اپل پیکربندی Xcode پیکربندی ماژول‌های کیوت پیکربندی Java و ... در صورت نیاز به مباحث دیگری نیز اشاره خواهد شد. نحوه‌ی استفاده جهت استفاده از کیوبس کافی است با سینتکس JavaScript یا QML آشنا باشید. جهت پیکربندی یک پروژه سی‌پلاس‌پلاس نمونه کُد آن به صورت زیر خواهد بود: import qbs 1.0 Application { name: "helloworld" files: "main.cpp" Depends { name: "cpp" } } انواع پروژه‌ها در کیوبس به چهار دسته‌ی زیر تقسیم بندی می‌شوند: تولید اپلیکیشن ساده (Application) این نوع پروژه به عنوان یک آیتم از محصول می‌باشد. Application { Depends { name: "cpp" } } تولید اپلیکیشن تحت وابستکی و ویژگی‌های سی‌پلاس‌پلاس (CppApplication) به عنوان یک محصول که تحت وابستگی‌های ماژول Cpp می‌باشد استفاده می‌شود. CppApplication { cpp.cxxLanguageVersion: "c++11" files: [ "main.cpp", "qml.qrc", ] } تولید پروژه در قالب کتابخانه‌ی پویا (DynamicLibrary) این نوع زمانی مورد استفاده قرار می‌گیرد که قرار است پروژه را در قالب یک خروجی کتابخانه‌ی پویا تولید کنیم. Product { type: "dynamiclibrary" } تولید پروژه در قالب کتابخانه‌ی استاتیک (StaticLibrary) این نوع زمانی مورد استفاده قرار می‌گیرد که قرار است پروژه را در قالب یک خروجی کتابخانه‌ی ایستا تولید کنیم. مثال Product { type: "staticlibrary" } در یک پروژه برای مشخص کردن فایل‌های قابل استفاده، نام و وابستگی‌ها به سادگی می‌توانند مشخص شوند. برای مثال در صورتی که پروژه‌ی شما تحت فناوری کیوت و Qt Quick است کافی است مقدار Depends را مشخص کنید: Depends { name: "Qt.core" } Depends { name: "Qt.quick" } لیستی از آیتم‌های (پر کاربرد و پایه) در QBS آیتم پروژه (Project) به عنوان یک آیتم از پروژه مجموعه‌ای از محصولات و خواص‌های مربوط به آن‌ها را ارائه می‌دهد. آیتم زیر پروژه‌ (Sub Project) یک ایتم زیر پروژه برای اضافه کردن یک پروژه به عنوان زیر مجموعه پروژه می‌باشد که در یک فایل جداگانه تعریف شده است. SubProject { filePath: "Subproject/OtherProject.qbs" Properties { name: "A sub-project" } } آیتم خواص (Properties) شرایط دستوری و خاصیت‌های مورد نیاز را برای یک محصول ایجاد می‌کند. Product { Properties { condition: qbs.targetOS.contains("windows") ... ..... } } - خواص condition از نوع بولین جهت شرط سازی سایر موارد در یک محصول را فراهم می‌کند. - خواص overrideListProperties لیست خواص تنظیم شده را که در ماژول‌ها به دست می آید را بر می‌گرداند. آیتم اپلیکیشن Application به عنوان یک آیتم با نوع 'application' برای یک محصول تعریف می‌شود. آیتم اپلیکیشن سی‌پلاس‌پلاس CppApplication به عنوان یک محصول با وابستگی‌های لازم در سی‌پلاس‌پلاس می‌باشد. آیتم کتابخانه‌‌ی پویا (DynamicLibrary) به عنوان یک آیتم برای محصول از نوع کتابخانه در قالب داینامیک (پویا) می‌باشد. import qbs Project { minimumQbsVersion: "1.7.1" CppApplication { type: "dynamiclibrary" ... Group { // Properties for the produced executable fileTagsFilter: "application" qbs.install: true } } } آیتم کتابخانه‌‌ی ایستا (StaticLibrary) به عنوان یک آیتم برای محصول از نوع کتابخانه در قالب استاتیک (ایستا) می‌باشد. import qbs Project { minimumQbsVersion: "1.7.1" CppApplication { type: "staticlibrary" ... Group { // Properties for the produced executable fileTagsFilter: "application" qbs.install: true } } } آیتم محصول (Product) به عنوان یک محصول (Product) به طور معمول نتیجه یک فرآیند ساخت را ارائه می‌دهد. مجموعه ای از فایلهای ورودی و خروجی را مشخص می‌کند. برای مثال نمونه‌ی زیر محصول را به عنوان یک پروژه سی پلای پلاس تنظیم می‌کند. Product { name: "helloworld" type: "application" files: "main.cpp" Depends { name: "cpp" } } خواص عضو در محصول (Product) aggregate : bool buildDirectory : path builtByDefault : bool condition : bool consoleApplication : bool destinationDirectory : string excludeFiles : stringList files : stringList multiplexByQbsProperties : stringList multiplexedType : stringList name : string qbsSearchPaths : stringList sourceDirectory : path targetName : string type : stringList version : string عضو aggregate اگر مقدارش برابر با true باشد، محصولی را که تحت وابستگی چندگانه باد در قالب یک محصول جمع آوری شده تولید خواهد کرد. در صورتی که شما نمی‌خواهید چنین کاری کنید بهتر است آن را به صورت تعریف نشده در نظر بگیرید. عضو buildDirectory دایرکتوری (ریشه مسیر) برای ساخت محصول است. فایل‌های تولید شده بعد از کامپایل در این مسیر قرار خواهند گرفت که به صورت پیش فرض توسط Qbs مقدار دهی می‌شود و کاربر نمی‌تواند آن را تغییر دهد. عضو buildByDefault تعیین کننده ساخت محصول است. اگر مقدارش false باشد، عمل ساخت محصول تنها در زمان درخواست صریح صورت خواهد گرفت که دستور ساخت آن توسط پارامتر --products و یا استفاده از --all-products برای دستور ساخت استفاده خواهد شد. مقدار آن به صورت پیشفرض true می‌باشد. عضو condition تعیین می‌کند که محصول ساخته خواهد شد، اگر مقدارش false باشد، محصول ساخته نخواهد شد. مقدار این عضو به صورت پیشفرض true است. در ویندوز، تعیین می‌کند که برنامه تحت GUI تولید شود یا تحت کنسول. اگر مقدار آن برابر true باشد، یک اپلیکیشن تحت کنسول تولید خواهد شد. در غیر این صورت یک اپلیکیشن تحت رابط کاربری (GUI) تولید خواهد شد. در پلتفرم‌های اپل، به نوع برنامه به صورت پیشفرض بستگی دارد. اگر مقدارش true باشد، یک برنامه اجرایی طبیعی تولید خواهد شد در غیر این صورت، بسته‌ی نرم‌ا‌فزاری تولید می‌شود. عضو destinationDirectory مسیری است که در هدف مصنوعات قرار می‌گیرد. اگر یک مسیر نسبی داده شود آن را به عنوان دایرکتوری پایه برای project.buildDirectory تنظیم می‌کند. عضو exclude-files لیست فایلهای منبع یا سورس را شاملش نمی‌شود. برای موارد معروف و خاص مفید است. عضو files لیستی از فایل های منبع یا سورس را شامل می‌شود. عضو multiplexByQbsProperties مشخص می‌کند که کدام خواص ماژول qbs برای استفاده از محصولات چندگانه استفاده شود. عضو multiplexedType نوع محصول را برای نمونه محصولات چند گانه مشخص می‌کند. در صورتی که نیاز به این خواص ندارید می‌توانید آن را تعریف نکنید. عضو name نام محصول را اعمال میکند. مقدار آن باید بر اساس یک عبارت جاوا اسکریپتی باشد. CppApplication { name: "hello" + "world" // valid } CppApplication { name: "app_" + qbs.targetOS.join("_") // invalid } عضو qbsSearchPath با مقدار project.qbsSearchPaths ادغام خواهد شد که لیستی از مسیرها را برای وارد کردن ماژول‌ها جستجو می‌کند. عضو sourceDirectory دایرکتوری یا مسیر منبع را برای محصول مشخص می‌کند. این دایرکتوری برای فایل‌هایی که در محصول تعریف شده اند می‌باشد. عضو targetName نام پایه فایل است که با هدف مصنوعات برای محصول می‌باشد. مقدار نام فایلی که نامعتبر باشد توسط کاراکتر زیر خط جایگزین می‌شود. عضو type برچسب‌های فایل مربط به مصنوعات محصول را مشخص می‌کند. عضو version شماره نسخه محصول را مشخص می‌کند. برای کتابخانه‌های به اشتراک گذاری شده و همچنین فایل Info.plist تحت محصولات اپل مورد استفاده می‌گیرد. آیتم پروفایل (Profile) به عنوان پروفایل سفارشی می‌تواند برای تعریف اهداف و شرایط ساخت بر روی یک ماشین خاص تنظیم شود. Profile { name: "my-special-profile" qbs.toolchainType: "gcc" qbs.targetPlatform: "linux" qbs.architecture: "armv7a" cpp.toolchainInstallPath: "/opt/special-gcc/bin" cpp.toolchainPrefix: "arm-linux-gnueabi-" } qbs.profiles: ["my-special-profile"] آیتم گروه (Group) جهت تعریف گروه‌های مختلف در فایل‌هایی که شامل یک محصول می‌باشند مورد استفاده قرار می‌گیرد. این ویژگی در محیط توسعه برای مدیریت پروژه‌های بزرگ بسیار کارآمد و مفید است. Application { Group { name: "common files" files: ["myclass.h", "myclass_common_impl.cpp"] } Group { name: "Windows files" condition: qbs.targetOS.contains("windows") files: "myclass_win_impl.cpp" } Group { name: "Unix files" condition: qbs.targetOS.contains("unix") files: "unixhelper.cpp" Group { name: "Linux files" condition: qbs.targetOS.contains("linux") files: "myclass_linux_impl.cpp" } Group { name: "FreeBSD files" condition: qbs.targetOS.contains("freebsd") files: "myclass_freebsd_impl.cpp" } Group { name: "macOS files" condition: qbs.targetOS.contains("macos") files: "myclass_macos_impl.cpp" } Group { name: "PS4 Pro files" condition: qbs.targetOS.contains("linux") files: "myclass_macos_impl.cpp" } Group { name: "Xbox One X files" condition: qbs.targetOS.contains("windows") files: "myclass_macos_impl.cpp" } } Group { name: "Files to install" qbs.install: true qbs.installDir: "share" files: "runtime_resource.txt" } } آیتم وابستگی (Depends) یک آیتم وابستگی در یک محصول یا ماژول تعریف می‌شود. به عنوان مثال محصول زیر ماژول Qt Quick، Qt Core و Qt Gui را بارگیری می‌کند. Product { Depends { name: "Qt.core" } Depends { name: "Qt.quick" } Depends { name: "Qt.gui" } } و یا به روش زیر تحت کتابخانه‌ی Qt ماژول‌های مربوطه را بارگیری می‌کند. Product { Depends { name: "Qt"; submodules: ["core", "quick", "gui"] } } ترکیبی از ماژول‌های مختلف از پروژه‌های مختلف به صورت زیر خواهد بود: Product { Depends { name: "cpp" } Depends { name: "MyEngine"; submodules: ["module1", "module2", "module3"] } Depends { name: "Qt"; submodules: ["core", "quick", "gui"] } } معرفی ماژول‌های پر کاربرد در Qbs ماژول cpp جهت پیکربندی و پشتیبانی از C++ و ویژگی‌های آن در کیوبس برخی از ویژگی‌های موجود در این ماژول به صورت زیر آورده شده‌اند: allowUnresolvedSymbols : bool alwaysUseLipo : bool architecture : string archiverName : string archiverPath : string assemblerFlags : stringList assemblerName : string assemblerPath : string automaticReferenceCounting : bool cFlags : stringList cLanguageVersion : stringList combineCSources : bool combineCxxSources : bool combineObjcSources : bool combineObjcxxSources : bool commonCompilerFlags : stringList compilerDefinesByLanguage : var compilerFrameworkPaths : pathList compilerIncludePaths : pathList compilerLibraryPaths : pathList compilerName : string compilerPath : string compilerPathByLanguage : var compilerVersionMajor : int compilerVersionMinor : int compilerVersionPatch : int compilerWrapper : stringList cppFlags : stringList cxxFlags : stringList cxxLanguageVersion : stringList cxxStandardLibrary : string debugInformation : bool defines : stringList discardUnusedData : bool distributionFrameworkPaths : pathList distributionIncludePaths : pathList distributionLibraryPaths : pathList driverFlags : stringList driverLinkerFlags : stringList dsymutilFlags : stringList dsymutilPath : string dynamicLibraries : stringList enableCompilerDefinesByLanguage : stringList enableExceptions : bool enableReproducibleBuilds : bool enableRtti : bool endianness : string entryPoint : string exceptionHandlingModel : string exportedSymbolsCheckMode : string frameworkPaths : pathList frameworks : stringList generateManifestFile : bool includePaths : pathList libraryPaths : pathList linkerFlags : stringList linkerMode : string linkerName : string linkerPath : string linkerWrapper : stringList lipoPath : string minimumIosVersion : string minimumMacosVersion : string minimumTvosVersion : string minimumWatchosVersion : string minimumWindowsVersion : string nmName : string nmPath : string objcFlags : stringList objcopyName : string objcopyPath : string objcxxFlags : stringList optimization : string platformDefines : stringList positionIndependentCode : bool prefixHeaders : pathList requireAppContainer : bool requireAppExtensionSafeApi : bool rpathOrigin : string rpaths : stringList runtimeLibrary : string separateDebugInformation : bool soVersion : string sonamePrefix : string staticLibraries : stringList stripName : string stripPath : string systemFrameworkPaths : pathList systemIncludePaths : pathList systemRunPaths : stringList treatSystemHeadersAsDependencies : bool treatWarningsAsErrors : bool useCPrecompiledHeader : bool useCxxPrecompiledHeader : bool useLanguageVersionFallback : bool useObjcPrecompiledHeader : bool useObjcxxPrecompiledHeader : bool useRPathLink : bool useRPaths : bool variantSuffix : string visibility : string warningLevel : string weakFrameworks : stringList windowsApiAdditionalPartitions : stringList windowsApiCharacterSet : string windowsApiFamily : string با توجه به لیست بالا، به برخی از ویژگی‌های موجود در این لیست اشاره می‌کنیم. ویژگی cxxLanguageVersion و cLanguageVersion جهت تعیین کردن پشتیبانی از نسخه‌ی زبان‌های سی‌پلاس‌پلاس و سی مورد استفاده قرار می‌گیرد که مشخصه‌های آن به ترتیب برای سی‌پلاس‌پلاس c++98 | c++11 | c++14 | c++17 و برای سی c89 | c98 | c11 می‌باشند. cpp.cLanguageVersion: "c11" cpp.cxxLanguageVersion: "c++17"
  12. veria.kurdish

    ماکرو در فناوری Qt Quick به چه معناست و چه کاربردی دارد؟
  13. کامبیز اسدزاده

    سلام، بنابر درخواست اعضای محترم لازم شد آموزشی در رابطه با نحوه‌ی افزودن کتابخانه‌های دیگر به این محیط را توضیح دهیم. من در این آموزش کتابخانه‌ی Poco را در نظر گرفته ام. کتابخانه را دانلود کرده و در یک مسیر مشخص اضافه کنید. برای مثال C:/MyLib/poco-1.9.0-all و یا در لینوکس و مک در مسیر /Users/{username}/Documents/Libs/poco-1.9.0-all در نظر داشته باشید که هر کتابخانه‌ای معمولاً دارای دو پوشه lib و include خواهد بود که شما باید این دو را به پروژه‌ی خود اضافه کنید. هر کتابخانه‌ای باید قبل از کامپایل پیکربنی شده و سپس بیلد شود. برای مثال در کتابخانه‌ی پوکو دستورات زیر را بعد از دریافت اجرا خواهیم کرد. cd /Users/username/Documents/Libs/poco-1.9.0-all سپس دستور ./configure و بعد از آن دستور make را اجرا کنید تا کتابخانه شروع به کامپایل شدن کند. بعد از کامپایل در پوشه‌ی lib تمامی کتابخانه‌ها ایجاد خواهند شد. وارد محیط Qt Creator شده و سپس بعد از ایجاد یک پروژه بر روی آن راست کلیک و گزینه‌ی add library را انتخاب کنید. سپس گزینه‌ی External library را انتخاب نمایید. در مرحله‌ی بعد فایل libPocoFoundation.60.dylib و libPocoNet.60.dylib را در بخش library file و سپس مسیر include آن را در include path وارد کنید که مشابه مسیر زیر خواهد بود. Library file : /Users/kambiz/Documents/Libs/poco-1.9.0-all/lib/Darwin/x86_64/libPocoFoundation.60.dylib Include path : /Users/kambiz/Documents/Libs/poco-1.9.0-all/Foundation/include Library file : /Users/kambiz/Documents/Libs/poco-1.9.0-all/lib/Darwin/x86_64/libPocoNet.60.dylib Include path : /Users/kambiz/Documents/Libs/poco-1.9.0-all/Net/include بعد از افزودن کسیر و کتابخانه کُد تولید شده در فایل .pro به صورت زیر خواهد بود: win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../Libs/poco-1.9.0-all/lib/Darwin/x86_64/release/ -lPocoFoundation.60 else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../Libs/poco-1.9.0-all/lib/Darwin/x86_64/debug/ -lPocoFoundation.60 else:unix: LIBS += -L$$PWD/../../Libs/poco-1.9.0-all/lib/Darwin/x86_64/ -lPocoFoundation.60 INCLUDEPATH += $$PWD/../../Libs/poco-1.9.0-all/Foundation/include DEPENDPATH += $$PWD/../../Libs/poco-1.9.0-all/Foundation/include win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../Libs/poco-1.9.0-all/lib/Darwin/x86_64/release/ -lPocoNet.60 else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../Libs/poco-1.9.0-all/lib/Darwin/x86_64/debug/ -lPocoNet.60 else:unix: LIBS += -L$$PWD/../../Libs/poco-1.9.0-all/lib/Darwin/x86_64/ -lPocoNet.60 INCLUDEPATH += $$PWD/../../Libs/poco-1.9.0-all/Net/include DEPENDPATH += $$PWD/../../Libs/poco-1.9.0-all/Net/include مراحل افزودن به پایان رسید، وارد محیط کیوت شده و داخل فایل main.cpp هدر‌های مرتبط با کتابخانه و همچنین کُد آزمایشی آن را اضافه کنید. در این مثال من از کتابخانه‌ی Net استفاده می‌کنم. //Qt Lib #include <QCoreApplication> //STL & External Lib #include "Poco/Net/SocketAddress.h" #include "Poco/Net/StreamSocket.h" #include "Poco/Net/SocketStream.h" #include "Poco/StreamCopier.h" #include <iostream> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); Poco::Net::SocketAddress sa("www.iostream.ir", 80); Poco::Net::StreamSocket socket(sa); Poco::Net::SocketStream str(socket); str << "GET / HTTP/1.1\r\n" "Host: www.iostream.ir\r\n" "\r\n"; str.flush(); Poco::StreamCopier::copyStream(str, std::cout); return a.exec(); } برنامه را کامپایل و اجرا کنید
  14. کامبیز اسدزاده

    اینترنت اشیاء : چرا ابزار ها مهم هستند؟

    تحول توسط اینترنت اشیاء (IoT)، این واضح است که افزوده شدن به تعداد دستگاه های متصل به این فناوری با سرعت چشمگیری در حال افزایش است. همه جا در اطراف زندگی روزمره ما، استفاده بیشترو بیشتری را از آن ها داریم. علاوه بر این که به آن ها متصل هستیم، دستگاه های با صفحه لمسی بیشتری به رابط گرافیکی مدرن مجهز می شوند. در این میان در اطراف ما به راحتی دیده می شود که کاربران زیادی نرم افزار های خود را توسط کیوت برای این دستگاه ها می سازند. برای رسیدن به شماری از این اعداد و ارقام توسط گروه Gartner که تخمین زده است تا سال ۲۰۲۰ رشد دستگاه های متصل به این فناوری حدود ۲۰٬۷ میلیارد دستگاه خواهد بود. (حتی پیش بینی شده است که بالاتر از آن یعنی حدود ۳۰ میلیارد دستگاه) مجهز به فناوری مرتبط خواهد شد که تحت سی پلاس پلاس و کیوت توسعه پیدا می کنند. نه تنها شمار زیادی از دستگاه ها در حال رشد هستند، اما در این میان پیچیدگی و تعداد نرم افزار ها نیز در حال رشد هستند. برای مثال، امروزه خودرو ها می‌توانند بیش از ۱۰۰ میلیون خط کد را در اختیار داشته باشند، انتظار می رود این روند به سه برابر در آینده به عنوان قابلیت های نرم افزاری در خودرو ها افزایش یابد. خودرو ها بخش پیچیده ای از این فرآیند محسوب می شوند، اما حتی برای ساده ترین اتصال به دستگاه ها نیاز به نرم افزار های زیادی می باشد که قادر باشند الزامات را برای اتصال به طور امن با قابلیت های مفید را با رشد چشم گیری در اختیار مصرف کنندگان قرار دهند. در اینجا بر روی یک نمودار خطی چگونگی دستگاه های در حال رشد را تخمین می‌زنیم: در داخل این دستگاه ها چه چیزی وجود دارد؟ چه نوع نرم افزاری دستگاه های متصل شده را مدیریت می کند؟ چه نوع مهارت هایی برای ساخت اینها نیاز است؟ اینگونه تخمین زده شده است که تا به امروز 95% از دستگاه های تعبیه شده (Embedded) اِمبد ها توسط زبان برنامه نویسی C و ++C ساخته شده اند، و اینگونه پیشبینی شده است که این فرآیند در آینده به طور قابل توجهی تغییر نخواهد یافت. سپس، از سوی دیگر با توجه به مطالعاتی که در جهان بر روی ۴.۴ میلیون توسع دهنده C++ و ۱.۹ میلیون توسعه دهنده زبان C در سال ۲۰۱۵ صورت گرفته است. یک مطالعه بر اساس نتایج سال ۲۰۰۱ توسط IDC، نشان می دهد که تعداد توسعه دهندگان زبان ++C در آن زمان حدود ۳ میلیون نفر بوده است. معنی این نتایج اینگونه است که تعداد توسعه دهندگان ++C به طور پیوسته در حال رشد است که حدود 3% در سال بوده و انتظار می روند با همین روند به جمع توسعه دهندگان در سال های آتی افزوده شود. بنابراین، یک تجسم کلی از رشد توسعه دهندگان ++C در نمودار زیر آورده شده است: بر اساس برآورده های تعداد دستگاه های تخمین زده شده، که اکثر آن ها باید توسط C و ++C انجام شده باشند، و در حال حاضر با سرعت بسیار زیادی همین روند رو به رشد می باشد و انتظار می رود این روند با سرعت بسیار بیشتری ادامه یابد. با توجه به افزایش پیچیدگی در عملکرد، تعداد نرم افزار های موجود در حال رشد است. اگرچه برخی از دستگاه های جدید از عملکرد بسیار ساده ای برخوردار خواهند بود، اما دستگاه های بسیار بیشتری با پیچیدگی های بیشتری مورد نیاز مصرف کنندگان است. در حال حاضر، این مقایسه بین دو گرایش معمای جالبی را برای ما فراهم می کند که توجه به آن جالب است: چطور میلیون ها نفر از توسعه دهندگان سی‌پلاس‌پلاس نیازمندی ها را برای ساخت و متصل کردن میلیاردها دستگاه به یکدیگر مطابقت می دهند. با قرار دادن این دو نمودار در کنار هم، می توانیم به وضوح نمودار پارادوکس را تجسم کرده و به یک (راه حل) ممکن برسیم: بنابراین چگونه بر آن افزوده می شود؟ آیا ما انتظار این را خواهیم داشت که در سال ۲۰۲۰ یک توسعه دهنده سی‌پلاس‌پلاس ۲۰ برابر بیشتر از آن چیزی را بنویسد که در ۱ دهه قبل نوشته است؟ این راه حل کارساز نخواهد بود. حتی اگر همه توسعه دهندگان ++C تمرکزشان بر روی دستگاه ها باشد! لذا هنوز توسعه دهنده ++C به اندازه کافی موجود نیست. توسعه دهندگان C++ به راحتی می توانند آموزش های حرفه ای را ببینند و سال هایی را برای دوره های خود در نظر بگیرند تا به درجه استادی برسند. بنابراین، چیزی که باید انجام شود دو چیز است: فعال کردن توسعه دهندگان C++ در این زمینه ها و همچنین آموزش برای برنامه نویسان غیر ++C برای ساخت دستگاه ها. بنابراین، برای تعبیه شدن نیاز ها باید با شرایط جدیدتری سازگار شد. تنها راه برای مقابله با رشد این است که ابزار های خوبی برای دستگاه ها در اختیار قرار گیرد. پیش بینی می شود با ابزار هایی که Qt قرار است فراهم کند رویکرد قابل قبولی برای ساخت دستگاه ها فراهم آورد. زیرا شعار کیوت این است "کد کمتر،سازندگی بیشتر، تولید و استقرار در همه جا" این شعار تابه امروز پیش بینی شده بود. کیوت دارای سابقه ی دستگاه های اِمبد، دسکتاپ و موبایل و ساخت و توسعه اپلیکیشن های کاربردی با روش بهتر و ساده تر در تمامی پلتفرم ها می باشد. این احتمال وجود دارد که حتی استفاده از قابلیت های نرم افزاری کافی نیست. همچنین لازم است برای افزایش بهره وری از برنامه نویسان خبره ++C جهت توسعه بهتر استفاده شود.با استفاده از Qt رابط های برنامه نویسی به طور گسترده و مشهوری مستند سازی شده اند. بنابراین توسعه دهندگان ++C سازنده تر و مفید تر از قبل هستند. همچنین Qt زبان اعلانی با نام QML را جهت سهولت کار در طراحی فراهم کرده است، و رشد اینکه تعداد کثیری از مردم که می خواهند فراتر از توسعه دهندگان سی پلاس پلاس در توسعه دستگاه ها قدم بگذارند ایجاب شده است. در حال حاضر میلیون ها توسعه دهنده با Qt در جهان آشنا هستند که روز به روز برای به دست گرفتن آن میکوشند. با وجود زبان QML، مشکل اینگونه حل شده است تا بدون داشتن مهارت های بسیار بالا از ++C توسعه دهندگان بتوانند در زمینه رابط کاربری تیم خود را مدیریت کنند. البته برای ساخت هسته نرم افزار های دستگاه های تعبیه شده نیاز به ++C امریست ضروری. اما چیز دیگری می تواند کمک بهتری برای توسعه در اختیار قرار دهد. استفاده از Qt که اجازه می دهد هر دو نوع توسعه دهندگان غیر ++C و متخصصین ++C عملیاتی را که می خواهند بر روی دستگاه ها توسعه دهند فراهم می کند. و این اجازه می دهد توسعه دهندگان ++C تمرکز بهتری در تمامی زمینه ها داشته باشند.
×