جستجو در تالارهای گفتگو
در حال نمایش نتایج برای برچسب های 'qt'.
77 نتیجه پیدا شد
-
همه چیز در مورد مجوز و شرایط استفاده از کتابخانهٔ Qt
کامبیز اسدزاده نوشته وبلاگ را ارسال کرد در ابزارها
یکی از مهمترین و پرمخاطبترین سوألاتی که در مورد فریمورک کیوت پرسیده میشود، شرایط استفاده و مجوزهای مربوط به آن است؛ از آنجایی که این کتابخانه تحت پشتیبانی یک شرکت تجاری است، برخی از شرایط و قوائدی وضع شده است که در استفاده از آن باید دقت لازم را داشت. در این مقاله من قصد دارم به توضیحات و شفافسازی کامل در این خصوص بپردازم که امیدوارم از آن بهرهمند شده و به اشتراک بگذارید. بررسی مجوزهای جامع Qt ابزار Qt، یک چهارچوب قدرتمند برنامهنویسی چندسکویی است که انواع مختلفی از مجوزها را ارائه میدهد تا به نیازهای متنوع کاربران خود پاسخ دهد. با توجه به تاریخچهٔ غنیای که به آغاز توسعهٔ آن باز میگردد، Qt به تدریج به یکی از اصلیترین بازیگران در زمینه توسعه نرمافزار تبدیل شده است که در این مقاله به آن اشاره میکنیم. Qt تحت چندین گزینه مجوز مختلف قرار دارد که برای توسعه نرمافزارهای مختلف مناسب هستند که به صورت زیر تعریف شدهاند. مجوز تجاری Qt فریمورک کیوت، زیر مجوزهای تجاری مناسبی را برای توسعه نرمافزارهای تجاری فراهم کرده است که کاربران نمیخواهند کد منبع خود را با دیگران به اشتراک بگذارند یا نمیتوانند با شرایط نسخه 3 مجوز GNU LGPL (GNU Lesser General Public License) سازگاری یابند. مجوز LGPL Qt این مجوز برای توسعه نرمافزارهای Qt مناسب است، تا زمانی که شما میتوانید با شرایط نسخه 3 مجوز GNU LGPL (یا GNU GPL نسخه 3) سازگار باشید. مجوز بازار Qt (Qt Marketplace) اجزای Qt تحت توافقنامه مجوز بازار Qt مناسب برای توسعه نرمافزارهای Qt هستند، معمولاً با شرایط مجوز تجاری یا GNU LGPL (یا GNU GPL نسخه 3) برنامهریزی میشوند. استفاده از کد، از طریق مجوزهای متنباز فریمورک Qt شامل کدهای شخص ثالثی است که تحت مجوزهای خاص متنباز از نویسندگان اصلی مجوزدهی شدهاند. برخی از سوأل و پرسشهای جامعه و تیم کیوت در رابطه با مجوزها و اهداف آنها در توسعه چرا Qt همچنین زیر مجوز نرمافزار متن باز نیز منتشر میشود؟ ما به جنبش نرمافزار آزاد اعتقاد داریم که استفاده از نرمافزار با حقوق وظایف خاصی همراه است. استفاده از مجوزهای نرمافزار متن باز، به کاربران چهار درجه اصلی از آزادی را در استفاده از برنامهها یا دستگاههای Qt میدهد: آزادی اجرای برنامه برای هر هدفی. آزادی مطالعه نحوه عمل برنامه و سازگارسازی آن با نیازهای خاص. آزادی توزیع نسخههای کپی شده تا بتوانید به همسایه خود کمک کنید. آزادی بهبود برنامه و انتشار بهبودهای خود به عموم، تا کل جامعه بهرهمند شود. این آزادیها غیرقابل مذاکره و مطلق هستند، نمیتوان آنها را به صورت انتخابی یا جزئی تجربه کرد، شما همچنین موظف به انتقال آنها به کاربران خود هستید. چرا شما توافقی با KDE در مورد مجوزهای خود دارید؟ KDE چیست و تاریخچهٔ Qt و KDE چگونه است؟ توافق بین Qt و KDE دربارهٔ مجوزها، ریشه در تاریخچهٔ مشترک این دو نهاد دارد. KDE (kde.org) مخفف محیط کاری دسکتاپ (Desktop Environment) است که یک جامعهٔ بینالمللی نرمافزار آزاد است و در سال ۱۹۹۶ تأسیس شد. KDE به خاطر محیط کاری Plasma Desktop شناخته میشود که به عنوان محیط کاری پیشفرض در بسیاری از توزیعهای لینوکس به کار میرود. نرمافزارهای KDE بر پایهٔ چارچوب Qt ساخته میشوند. در اوایل توسعهٔ Qt، این چارچوب از یک مدل مجوز دوگانه برخوردار بود و کد منبع آن تحت مجوزهای متن باز اختصاصی قابل دسترس بود. با درک اهمیت Qt برای پروژههای خود، KDE تلاش کرد تا توافقاتی برای اطمینان از دسترسی به Qt تحت مجوزهای مناسب متن باز، حتی اگر Trolltech (شرکت بنیانگذار Qt) به تصرف بشود یا ورشکست شود، به دست آورد. نتیجهٔ این تفاهم، بنیاد آزاد KDE Qt (KDE Free Qt Foundation) تأسیس شد و توافقنامه بنیاد آزاد KDE Qt ایجاد شد. بنیاد آزاد KDE Qt یک سازمان با هدف ایمن کردن دسترسی به چارچوب Qt برای توسعهٔ نرمافزارهای آزاد و بهویژه برای توسعهٔ نرمافزارهای KDE است. این بنیاد در ابتدا توسط Trolltech و سازمان غیرانتفاعی حقوقی KDE (KDE e.V.) در سال ۱۹۹۸ تأسیس شد و یک توافقنامهٔ مجوز دارد که تأمین میکند که Qt برای پلتفرمهای اصلی دسکتاپ و موبایل تحت مجوزهای LGPLv3 و GPLv3 در دسترس است. این توافقنامه در طی سالها چندین بار بهروزرسانی شده است، عمدتاً به دلیل انجام معاملات مرتبط با Qt یا بهروزرسانی مجوزها و پلتفرمها. عدم رعایت محدودیتهای مجوزهای LGPL/GPL چه تبعاتی دارد؟ اگر نرمافزاری که از این کتابخانههای مجوز متنباز استفاده میکند، به طور کامل الزامات مجوز را رعایت نکند، شما حق استفادهٔ مجوز و حقوق توزیع مرتبط با آن را از دست خواهید داد. همچنین لازم به ذکر است که در بیشتر کشورها، نقض حقوق نسخهٔ پدیدآورندگان یک نقض تشریعی است، نه نقض قرارداد، و بنابراین تدابیر تشریعی مرتبط با این موضوع اعمال میشود. برای کسب اطلاعات بیشتر در مورد GPL، میتوانید به صفحه FAQ GPL از لینک آن مراجعه کنید. آیا میتوانم از نسخهٔ متن باز جوامع برای توسعه محصول تجاری خود استفاده کنم؟ این بستگی به نحوهٔ ارائه و ارائهٔ محصول شما دارد. نسخهٔ متن باز Qt اصلی به طور عمده تحت مجوز LGPL نسخه 3 و GPLv2/v3 منتشر میشود. شما باید الزامات مجوزهای این گونه را که در زمان استفاده از Qt در محصول خود باید رعایت کنید. تفاوت بین LGPLv2 و LGPLv3 چیست؟ LGPLv3 نسخه فعلی مجوز GNU Lesser General Public License است. LGPLv2.1 یک نسخه قدیمیتر است و برای پروژههای جدید توصیه نمیشود. هر دو مجوز همان هدف را دارند، یعنی حفاظت از آزادی کاربران برای استفاده و اصلاح نرمافزار تحت مجوز LGPL. LGPLv3 این هدف را به وضوح بیان میکند. شما باید چیزهایی را برای کاربر نهایی فراهم کنید تا نسخه اصلاح شدهٔ کتابخانه تحت مجوز LGPLv3 را نصب کرده و نرمافزار خود را با استفاده از آن کتابخانه اصلاح شده اجرا کند. در عمل، این به عنوان مثال به موارد زیر اشاره دارد: Tivoization – به وضوح اجازه ندهید دستگاههای بسته سازیشده ایجاد شود که کاربر نهایی حقوق مجوز LGPL برای کتابخانههای متن باز Qt را ندارد. DRM و رمزگذاری سختافزاری – نمیتوان از این تعهدات برای دور زدن این تعهدات استفاده کرد. انتقام از پتنت نرمافزار – جایی که تمام کاربران نرمافزار مجوزها را دارند، که این باعث بیمعنی شدن انتقام از پتنت نرمافزارهایی که ممکن است در نرمافزار منتشر شده، میشود. وظایف من چیستند هنگام استفاده از Qt تحت مجوز LGPL؟ در ابتدا، باید توجه داشته باشید که تمامی ماژولهای متن باز Qt تحت مجوز LGPLv3 در دسترس نیستند. برخی از ماژولها برای استفاده در نرمافزارهای متن باز تحت GPLv3 قرار دارند و برخی از اجزاء توسعهیافته توسط شخص ثالث مانند موتور وب Chromium تحت مجوز LGPLv2.1 در دسترس قرار گرفتهاند. زمانی که از ماژولها و کتابخانههای Qt تحت مجوز LGPLv3 استفاده میکنید، برخی از وظایفی که باید رعایت کنید به شرح زیر است: هنگام استفاده از نرمافزار متن باز، باید از مجوز هر نمونه، قطعه کد منبع، ماژول و کتابخانهای که در پروژه خود استفاده میکنید، آگاه باشید و مجوزهای مرتبط را ردیابی کنید. باید کد منبع کامل کتابخانههای Qt که استفاده کردهاید را به همراه تمام اصلاحات اعمال شده یا اعمال شده، به کاربران یا مشتریان خود ارائه دهید. به عنوان یک گزینه دیگر، میتوانید پیشنهاد نامهای با دستورالعملهایی در مورد چگونگی دریافت کد منبع ارائه دهید. لطفاً توجه داشته باشید که این باید تحت کنترل شما باشد، بنابراین ارائه یک لینک به کد منبع ارائهشده توسط پروژه Qt یا شرکت Qt کافی نیست. مجوز LGPL به شما این امکان را میدهد که کد منبع خود نرمافزار را به عنوان «کاری که از کتابخانه استفاده میکند» خصوصی نگهدارید. به طور معمول، در اینجا پیشنهاد میشود که از اتصال پویا استفاده کنید (برای کامپایل استاتیک این مورد مجاز نیست و نیاز به تهیهٔ مجوز دارد). کاربر نهایی باید قادر باشد نرمافزار شما را با یک نسخه مختلف یا اصلاحشده از کتابخانه Qt مجدداً لینک کند. با LGPLv3، به وضوح ذکر شده است که کاربر باید قادر باشد باینری مجدداً لینکشده را بر روی دستگاه هدف خود اجرا کند. این وظیفه به شما محول است که کاربر را با همه ابزارهای لازم برای فعال کردن این فرآیند تجهیز کنید. برای دستگاههای جاسازیشده، این شامل فراهمکردن تمام ابزارهایی است که برای کامپایل کتابخانه استفادهشده به کاربران مورد نیاز است. برای اجزاء مجوزده LGPLv3، شما موظف به ارائه دستورالعملهای کامل در مورد نصب کتابخانه اصلاحشده بر روی دستگاه هدف هستید (این با LGPLv2.1 به طور واضح بیان نشده است، اگرچه اجرای برنامه در برابر نسخهٔ اصلاح شدهٔ کتابخانه با هدف اعلام شده در مجوز است). کاربری که از یک برنامه یا دستگاه که از نرمافزار متن باز تحت مجوز LGPL استفاده میکند، باید از حقوق خود مطلع شود، با ارائه یک نسخه از مجوز LGPL به کاربر نهایی و نمایش اعلان مشهور در مورد استفاده شما از نرمافزار متن باز باید اعلام شود. این آزادیها به هیچ وجه توسط شرایط دیگر مجوز گزینشی نمیتوانند محدود شوند؛ اگر یک برنامه به کلی از تمام وظایفی که در بالا ذکر شده است پیروی نکند، اجازه توزیع آن به هیچ وجه داده نمیشود. همچنین باید اطمینان حاصل کنید که از هیچ ماژولی که تحت مجوز GPL استفاده نمیکنید. آیا نیاز است که از مجوز LGPL هنگام استفاده از نسخهٔ تجاری Qt نگران باشم؟ به طور معمول، خیر. هنگام استفاده از نسخهٔ تجاری مجوزگذاری شده Qt، ما تقریباً تمامی بخشها را تحت شرایط یک مجوز تجاری ارائه میدهیم. هرچند، چندین ماژول در Qt از کد منبع پروژههای متن باز شخص ثالث مانند Qt WebEngine استفاده میکنند که از پروژه Chromium با مجوز LGPLv2.1 استفاده میکند. بنابراین، هنگام استفاده از این ماژولها، شما باید از تعهدات مجوز مرتبط رعایت کنید، در مورد Chromium این موضوع به مجوز LGPLv2.1 اشاره دارد. تمامی ماژولها و وابستگیهای شخص ثالثی که توسط ماژولهای مختلف Qt استفاده میشوند، در مستندات Qt برای هر نسخه از Qt مستند شدهاند. به عنوان یک کاربر مجوز تجاری، در عمل، تنها نیاز دارید که به تعهدات مجوز LGPLv2.1 اهمیت بدهید، و تنها اگر از Qt WebEngine استفاده کنید. چه کاری باید انجام دهم؟ مطمئن نیستم که مطابق مجوزهای متن باز هستم؟ از مجوزهای متن باز گیج شدهام، چه باید انجام دهم؟ همیشه خوشحال هستیم که با شما درباره وضعیتتان صحبت کنیم، اما ما در جایی نیستیم که مشاوره حقوقی ارائه دهیم. همیشه توصیه میشود با یک وکیل که با مجوزهای متن باز آشنا است، تماس بگیرید تا یک بررسی کامل از پروژه شما صورت گیرد و تصمیم گیری شود که آیا شما میتوانید تمامی تعهدات مجوزهای متن باز مربوطه (مانند LGPLv/GPLv) را انجام دهید یا خیر. مجوز تجاری Qt چگونه کار می کند؟ آیا همه توسعه دهندگان من باید مجوز معتبر Qt داشته باشند؟ در رابطه با مجوزهای تجاری، هر کاربر Qt باید مجوز تجاری Qt مختص خود را داشته باشد. طراحان رابط کاربری، هنرمندان فنی، توسعهدهندگان نرمافزار یا مهندسان اتوماسیون تست ممکن است انواع مختلفی از مجوزهای Qt داشته باشند، اما هر فرد باید یک مجوز اشتراک معتبر داشته باشد. آیا میتوانم کد نوشتهشده با Qt متن باز را با Qt تجاری مجوزگذاری شده ترکیب کنم؟ خیر. اگر میخواهید از Qt متن باز به یک مجوز تجاری مهاجرت کنید، لطفاً با فروشگاه Qt تماس بگیرید. برای این سوال، موارد بیشتری نیز در لینک FAQ مجوزگذاری تجاری Qt وجود دارد. آیا امکان توزیع برنامههای توسعه یافته با نسخهٔ متن باز Qt از طریق فروشگاههای عمومی وجود دارد؟ هر فروشگاه اپلیکیشن شرایط و مقررات منحصر به فردی دارد که ممکن است با توزیع برنامهها تحت مجوزهای LGPL یا GPL سازگار یا سازگار نباشد. مجوز تجاری Qt با شرایط و مقررات تمامی فروشگاههای اپلیکیشن معتبر سازگار است و بنابراین معمولاً بهترین گزینه برای توزیع یک برنامه به صورت منبع بسته در فروشگاههای مختلف است. من شروع به توسعه یک محصول با استفاده از نسخهٔ متن باز Qt کردهام، حالا میتوانم یک نسخهٔ تجاری از Qt خریداری کرده و کدم را تحت آن مجوز قرار دهم؟ بله. پروژههای توزیعشده تحت نسخهٔ تجاری Qt نیز باید تحت نسخهٔ تجاری Qt توسعه یابند. اگر قبلاً توسعه را با نسخهٔ متن باز Qt شروع کردهاید، ما به همکاری برای یافتن یک راهحل برای انتقال پایه کد شما از حاکمیت متن باز به مجوز تجاری میپردازیم. اگر از ابتدا مطمئن نیستید که از کدام مجوز یا نسخه برای شروع توسعه استفاده کنید، توصیه میشود با The Qt Company تماس بگیرید تا بر اساس نیازهای توسعهی خود شما راهنمایی شود. ممکن است در یک برنامه از کتابخانههای دارای مجوز LGPLv2.1 و LGPLv3 استفاده کرد؟ بله، امکان استفاده از هر دو نسخهٔ مجوز LGPLv2.1 و LGPLv3 در یک برنامه وجود دارد، به عنوان مثال با استفاده از آنها به عنوان کتابخانههای جداگانه به عنوان shared libraries. انجام این کار نیاز به تغییر مجوز در هیچ یک از کتابخانهها ندارد و در صورت نیاز، امکان انتخاب یک مجوز مولد برای برنامه وجود دارد. ماتریس سازگاری GNU نشان میدهد که من نمیتوانم LGPLv2 و LGPLv3 را ترکیب کنم؟ اگر کد LGPLv2.1 و کد LGPLv3 در کتابخانههای جداگانه به عنوان shared libraries قرار داده شوند، میتوانند در یک برنامه استفاده شوند، و شما میتوانید برنامه خود را با یک مجوز مالکیتی / LGPLv2.1 / LGPLv3 به دلخواه خود مجوزگذاری کنید. در مورد نسخهٔ مجوز LGPL/GPL که شما استفاده میکنید، چه کسانی مهم هستند؟ شما، مشتریان شما و کاربران نهایی، مگر اینکه از Qt تحت یک مجوز تجاری استفاده کنید. مجوزهای copyleft مانند LGPL و GPL به این معناست که مجوز با محصول شما به مشتریان و کاربران یا راهحل شما همراه میشود. با توجه به تمامی توضیحات موجود، به طور خلاصه چه زمانی نیاز به تهیهٔ مجوزهای کیوت داریم؟ تهیهٔ مجوز کتابخانه Qt بستگی به نوع کاربرد و نیازهای پروژه دارد. جوانب مختلفی که تعیین میکنند چه زمانی نیاز به مجوز Qt داریم و چه مواردی ممکن است بدون نیاز به مجوز باشند. استفادهٔ شخصی: نیاز به مجوز: اگر برنامهنویس قصد استفاده از Qt را برای توسعهٔ پروژهٔ شخصی و خصوصی دارد بدون انتشار کد منبع، نیاز به مجوز ندارد. در این حالت، میتوان از Qt به صورت رایگان استفاده کرد. بدون نیاز به مجوز: استفاده از Qt برای پروژههای شخصی بدون هدف انتشار کد منبع با محدودیتی همراه نخواهد بود. توسعهٔ نرمافزار باز (Open Source): نیاز به مجوز: اگر قصد توسعهٔ یک نرمافزار منبع باز با Qt را دارید و میخواهید کد منبع خود را نیز تحت یک مجوز Open Source انتشار دهید، نیاز به مجوز GPL یا LGPL خواهید داشت. بدون نیاز به مجوز: اگر نیازی به انتشار کد منبع ندارید و از Qt برای پروژه منبع باز خود استفاده میکنید، میتوانید از نسخهٔ Qt با مجوز LGPL بدون مشکل استفاده کنید. توسعهٔ نرمافزار تجاری (Commercial Software): نیاز به مجوز: اگر قصد توسعهٔ نرمافزار تجاری دارید و نمیخواهید کد منبع خود را انتشار دهید، نیاز به مجوز تجاری Qt دارید. بدون نیاز به مجوز: اگر از Qt برای توسعهٔ یک نرمافزار تجاری استفاده میکنید و توافق به اشتراکگذاری کد منبع ندارید، میتوانید از نسخهٔ تجاری Qt بهرهمند شوید. توسعهٔ نرمافزار تحت LGPL: نیاز به مجوز: اگر میخواهید نرمافزار تجاری توسعه دهید، اما نیاز به استفاده از کتابخانه Qt دارید و میخواهید تغییرات خود را در کتابخانه منتشر کنید، باید از مجوز LGPL استفاده کنید. بدون نیاز به مجوز: اگر قصد استفاده از Qt را در یک نرمافزار تجاری با حفظ محرمانگی کد دارید، میتوانید از مجوز تجاری Qt بهرهمند شوید. برخی از نکات را نیز باید در نظر بگیرید، مانند نوع کامپایل و نوع مجوزهای قابل پذیرش در فروشگاهها که عموماً همهٔ آنها را توضیح دادیم به چه صورت هستند.-
- qt license
- license
- (و 4 مورد دیگر)
-
ابزار Andrioid SDK , Android NDK, openssl , commandlinetools و غیره رو نصب کردم و در قسمت devices همه تیک ها سبز هست. یک پروژه qtquick برای اندروید ایجاد کردم. موقع کامپایل با خطای (gradle) زیر مواجه میشم : General error during conversion: Unsupported class file major version 63 از JDK ورژنن 17 تا 20 رو هم امتحان کردم بازم فایده نداشت
-
سلام. اگر بخوایم برای ضرب دو عدد با طول بی نهایت در یک ماشین حساب که در محیط QT ساخته شده است به شرطی که نتیجه ضرب را نشان دهد و overflow رخ ندهد، از چه کتاب خانه ای می توان استفاده کرد؟
-
با عرض سلام و ادب برای ایجاد یک برنامه اندرویدی که به اطلاعات روی سرور با سیستم عامل ویندوز و دیتابیس sql server دسترسی داشته باشد و سرور به صورت Lockal و یا ممکنه با آی پی استاتیک باشد چکار باید کرد ؟ پیشاپیش از راهنمایی شما سپاسگزارم
-
با عرض سلام خسته نباشید در مورد افزودن کیت اندروید به Qt به یک مشکلی برخورد کردم روش افزودن کیت به این شکل هست که: 1_در بخش tools>>Options>>Devices رو انتخاب میکنم و در تب Android به ترتیب مسیر jdk , sdk ,NDK,OPenssl رو مشخص میکنم. 2_ولی build tools و شناسایی نمیکنه و همیچن اروری میده : :-1: error: Project ERROR: You need to set the ANDROID_NDK_ROOT environment variable to point to your Android NDK. :-1: error: Could not read qmake configuration file C:/Qt/6.1.3/android_x86/mkspecs/android-clang/qmake.conf. در حالیکه متغیر ANDROID_NDK_ROOT تعریف شده(هم در بخش envirment و هم در بخش project داخل کیوت در بخش run and build) ورژن کیوت(Qt creator 5.0.0) و ورژن NDK(android-ndk-r21d)
-
سلام.وقتتون بخیر. خسته نباشید. سوالی که برای من پیش اومده وقتی میخام داخل qml فایل رو از File Dialog دریافت کنم و با FTP آپلود کنم روی هاست متاسفانه این امکان وجود نداره سمت بک اند هم نتونستم حتی فایل رو پاس بدم و یا آپلود کنم، ولی بیشتر دوس دارم این کارو با js داخل qml انجام بدم ولی حتی نتونستم فایل رو با File Dialog بگیرم. ممنون میشم راهنمایی کنید.
-
سلام.وقتتون بخیر. امیدوارم حالتون خوب باشه. من برای ولیدت کردن تکست فیلد نام کاربری از کد زیر استفاده میکنم.ولی متاسفانه بعد از استفاده از regular expression زیر برای نام کاربری، دیگه نمیتونم هیچ مقداری رو داخل تکست فیلد وارد کنم. TextField{ Layout.preferredWidth: parent.width font.family: appTextFont.name font.pixelSize: designSettingItem._textFontSize validator: RegExpValidator { regExp: /^[a-zA-Z0-9]([._-](?![._-])|[a-zA-Z0-9]){3,18}[a-zA-Z0-9]$/ } } این regular expression رو هم از سطح وب پیدا کردم.
-
سلام.وقتتون بخیر. من میخام فونت TabButton رو تغییر بدم و حتی سایز فونت رو افزایش بدم ولی متاسفانه کار نمیکنه.کد هم بصورت زیر هست: TabBar{ id: account_tabBar width: parent.width currentIndex: 1 TabButton{ text: "تغییر رمز" Font.family: appTitleFont.name Font.pixelSize: designSettingItem._titleFontSize3 } TabButton{ text: "پروفایل" } } مقدار appTitleFont و designSettingItem._titleFontSize3 از قبل تنظیم شدند و درموارد دیگری هم استفاده کردم و کار هم کردند. اروری هم که میده بصورت زیر هست. Non-existent attached object برای خطی هست که فونت فامیلی رو ست کردم. ممنون میشم راهنمایی کنید.
-
سلام و عرض ادب میخواستم جهت QMenubar راست چین بشه که این مورد به سادگی امکان پذیره ولی QAction هایی که اضافه میکنم عنوان راست چین نمیشه و راه حلی هم پیدا نکردم کسی راه حلی داره؟ ممنون میشم اگه راهنمایی کنید. با سپاس
-
سلام.وقتتون بخیر. من مدتی هست که با کتابخانه Qt کارمیکنم و از فناوری Qt Quick استفاده میکنم.مشکلی که دارم مشکل واکنش گرا کردن سایز متن هست این اصلی ترین مشکل من در طراحی با QML است. کتاب استاد اسد زاده رو نیز تهیه کردم ولی درمورد واکنش گرا بودن توضیح کم بود و نتونستم مثال کاربردی و درکل درکی از این موضوع داشته باشم. ممنون میشم اگر این موضوع و نحوه ریسپانسیو کردن سایز متن رو کسی توضیح بده. اگر با مثال باشه خیلی عالی میشه?
-
سلام. تازه با Qt آشنا شدم. لطفا لینک دانلود محیط توسعه Qt برای ویندوز 64 بیتی قرار دهید. از سایت qt نتونستم لینک دانلود پیدا کنم اساتید راهنمایی فرمایید
-
با سلام در qt quick 5.15 با استفاده از filedialog فایلی رو انتخاب کردم ولی متاسفانه آدرس اون فایل (خروجی fileUrl) به صورت زیر هست: content://com.android.providers.media.documents/document/14.mp4 چطور می تونم اون رو به آدرسی تبدیل کنم که به عنوان source در mediaplayer بتونم قرار بدم؟ نسخه ی اندروید ۱۰ است.
-
سلام من به تازگی با opengl کار میکنم میخواستم بدونم ایا منطقی هست که به جای ساخت ابجکت های گرافیکی توسط کتابخانه window.h (در ویندوز) و یا x11.h (داخل لینوکس) من خودم داخل کد c یا cpp بعد از ساخت پنجره مربوط به opengl ابجکت ها را خودم و داخل opengl بسازم و قابلیت های کلیک شدن و سلکت شدن و ... خودم اضافه کنم؟؟ از این منظر که بتونم ابجکت های سفارشی با هر شکل و ظاهری را بسازم و در کل میخوام کنترل کل برنامه دست خودم باشه، چون اینجوری عداوه بر این که میدونم ظاهر برنامه چطور ساخته شده ،حجم برنامه هم خیلی کم میشه در مقایسه با qt
-
سلام وقت بخیر.. من میخوام با qt پایگاه داده mysql ارتباط برقرار کنم، ولی هر کاری کردم وآموزش هم دیدم درست نشد. میشه برم توضیح بدین چطور این کار رو انجام بدم. متشکر.
-
سلام دسترسی به اعضای nested یک repeater به چه صورتی هست؟ من با استفاده از دستور زیر به جواب نرسیدم : repeater.itemAt(id).children[0].children[0].children[0].color = "red"; Repeater { id: repeater model: 5 Rectangle { property int radius: 15 gradient: Global.Theme width: radius Button { id:control x: 20 y : -25 Text { id : saveId// saveId text: qsTr(Global.textArray[index]) font : myFont color: Global.Theme ? Global.fontColor_gray : "red" anchors.verticalCenter: parent.verticalCenter anchors.horizontalCenter: parent.horizontalCenter } InnerShadow { //anchors.fill: parent cached: true visible: true horizontalOffset: 0 verticalOffset: 0 radius: 8 samples: 16 color: Global.Theme ? Global.innerShadowColor_gray : "red" smooth: true source: saveId } DropShadow { anchors.fill: saveId source: saveId verticalOffset: 4 //color: "#80000000" color: Global.Theme ? Global.dropShadowColor_gray : "red" radius: 30 samples: 300 } background: Rectangle { implicitWidth: 130 implicitHeight: 55 border.width: control.activeFocus ? 2 : 1 border.color: "darkgray" radius: 10 gradient: Global.Theme ? gradientProvider.gradientThem_1 : gradientThem_0 } onClicked: { } } } }
-
سلام چطوری می تونم یک فایل باینری رو در qt بخونم و داده هاش رو به صورت یک آرایه در qml نمایش بدم؟ ممنون
-
سلام .بنده میخواستم از طریق بخش Application Output به برنامه ورودی بدم ولی متاسفانه ورودی قبول نمیکنه .باید چیکار کنم؟؟
- 1 پاسخ
-
- qt creator
- qt
-
(و 2 مورد دیگر)
برچسب زده شده با :
-
وقت همگی بخیر بنده میخواستم بدونم آیا راهی هست که زیر یک surface3d که فقط seri داره رو پر کنم درواقع میخوام زیرش رو طرف با زوم کردن نره زیر surface رو ببینه و مشکی باشه. اگر این نمودار بنده باشه(که البته نیست فقط برای نشون دادن مشکلم عرض میکنم. لینک تصویر میخوام که زیرش مشکی شه و فقط سطح دیده شه تنها راهی که در ذهنم دارم که اصلا جالب نیست اینه که خودم یه سری دیتا دیگه درست کنم و مقادیرش با دیتای اصلی یکی باشه جز کناره هاش که کمترین مقدار surface باشه تا کناره ها رو مشکی کنه که فک میکنم مشکلات زیر رو داره: ۱- هردفعه پردازش اضافی با اپدیت مقادیر میشه و دوباره یه سری دیگه ساخته میشه که سرعت رو میاره پایین ۲- یکم هم مشکل هست ساخت دیتای اضافی اینطوری راه حلی دارید دوستان؟
-
سلام خدمت همه دوستان عزیز. من یه برنامه نوشته شده با qt دارم که خروجی اندروید ازش گرفتم و روی گوشی اندرویدی نصب کردم و اوکی هست. لازمه بخشهایی از برنامه در زمانهایی که در برنامه نیستیم (مثل سوییچ کردیم به یه اپلیکیشن دیگه) فعال بمونه و اجرا بشه. بنابراین باید اون بخشها در قالب سرویس اجرا بشن. تو سایتها و مراجع زیر آموزش نحوه استفاده از qt android service توضیح داده شده. یک سری مثال هم توی گیتهاب هست: https://www.kdab.com/qt-android-create-android-service-using-qt/ https://github.com/KDAB/android https://github.com/frankipl/service-test https://github.com/bbernhard/qtandroidservices_example فایلهای so مربوط به سرویس و اپلیکیشن تو فایل apk ساخته شده هست ولی موقع اجرای اپلیکیشن روی گوشی، سرویس اجرا نمیشه. repNode=new QRemoteObjectNode(this); res = repNode->connectToNode(QUrl(QStringLiteral("local:replica"))); service=repNode->acquire<PingPongReplica>(); res = service->waitForSource(1000); در حقیقت خط آخری (waitForSource) مقدار false برمیگردونه. من فکر میکنم یه جایی توی مراحل ساخت سرویس و تنظیماتش اشتباه کردم ولی نمیفهمم کجا. دوستانی که تجربه استفاده از qt android service دارند ممنون میشم کمک کنند.
-
سلام خدمت دوستان و اساتید گرامی. فرض کنین پنجرهای در برناممون داریم که از نوع QWidget هستش و میخوایم مختصات لحظه به لحظه حرکت موس رو بگیریم. خب در این حالت قاعدتا باید تابع QWidget::mouseMoveEvent رو بازنویسی و مطابق با کاری که میخوایم انجام بدیم تعریف کنیم. حالا اگر کاری که میخوایم در داخل تابع QWidget::mouseMoveEvent انجام بدیم زمانبر باشه برای جلوگیری از کند شدن برنامه و ایجاد تاخیر و از دست دادن جزئیات حرکت موس چه اقداماتی باید انجام بدیم؟ یکی راهی که به ذهن خودم رسید استفاده از یک نخ جدا برای انجام پردازش زمانبر هست ولی از اونجایی که لازمه قبل از اتمام تابع QWidget::mouseMoveEvent از join شدن نخ ایجاد شده اطمینان حاصل کنیم باز هم برنامه دچار تاخیر خواهد شد اگر هم بخوایم بلافاصله بعد از اجرای نخ اونو از نخ ایجاد کنندش جدا (detach) بکنیم بازم مشکل همچنان پا برجاست چون تابع QWidget::mouseMoveEvent پشت سر هم فراخوانی میشه و کلی نخ درست میشه که از نخ اصلی جدا شدن و نمیشه مدیریتشون کرد! در یک چنین وضعی چه کاری باید انجام بدیم؟ سپاس گزارم.
-
- mousemoveevent
- qwidget
-
(و 3 مورد دیگر)
برچسب زده شده با :
-
سلام من میخوام کتابخونه tz رو توی پروژه کیوت استفاده بکنم ولی لینک ارور میده .ظاهرا باید از cmake استفاده کرد اما بلد نیستم. منابع خوب و سریعی هم اگر دارید معرفی کنید . تشکر
- 1 پاسخ
-
- link error
- external libraries
-
(و 2 مورد دیگر)
برچسب زده شده با :
-
در حالت عادی، ویجت QSlider به اینصورت نمایش داده میشود : برای رنگ بندی نوار QSlider، چه پیشنهادی دارید ؟ مثلاً به اینصورت :
-
با سلام و عرض خسته نباشیدـ می خواستم بدونم Qt safe renderer چیه و به چه کاری میاد و چه زمانی باید ازش استفاده کرد. با تشکر
-
سلام دوستان. بعد از خروجی برنامه ام روی گوشیم در قسمت Appilication output یک پیامی هر چند ثانیه یک بار ظاهر میشد.کنجکاو شدم بدونم دلیلش چیه!و ایا اهمیت داره یا نه؟ QT5.13 کتابخانه ها : quick sql androidextras core gui charts bluetooth D/TelephonyIcons( 1857): data type item id: 2131230725 roaming item id:2131230728
-
این چشمانداز احتمالاً برای دوستداران کتابخانهٔ قدرتمند Qt و طرفدارانش جذاب باشد! بنابراین من سعی کردهام تا نتایج پست رسمی کیوت را در رابطه با چشمانداز فنی برای آیندهٔ کیوت نسخهٔ ۶ است در اختیار شما قرار دهم. تقریباً ۷ سال پیش کیوت نسخهٔ ۵.۰ منتشر شد! از آن زمان بسیاری از چیزها در دنیای اطراف ما تغییر پیدا کرده است. و اکنون وقت آن رسیده است که چشمانداز جدیدی را از نسخهٔ جدیدتر تعریف کنیم. بنابراین در این پست ما به معرفی مهمترین مواردی که به کیوت ۶ مرتبط است را میپردازیم. به نقل از مدیر فنی کیوت Lars Knoll، کیوت ۶ دقیقاً ادامهٔ کارهایی است که در نسخهٔ ۵ انجام داده شده است. بنابراین توسعه باید به گونهای باشد که کاربران نباید اذیت شوند. اما نسخهٔ جدید میتواند یک آزادی بالاتر را در اجرای ویژگیهای جدید، عملکرد و پشتیبانی بهتر از شرایط امروز و فردا از آنچه در حال حاضر میتوان در سری ۵ داشته باشیم را به ما خواهد داد. همانطور که جزئیات بیشتر در زیر شرح داده شده است، کیوت ۶ هدف زیادی از سازگاری با نسخهٔ قبلی خود یعنی کیوت ۵ را خواهد داشت. همچنین ما در حال توسعه روی نسخهٔ ۵ نیز هستیم که قصد داریم برخی از ویژگیهای کیوت ۶ را در نسخههای کیوت ۵.۱۴ و کیوت ۵.۱۵ LTS معرفی کنیم. بنابراین با ثابت نگهداشتن ویژگیها در کیوت ۵.۱۴، بیشترِ تمرکزِ تحقیق و توسعه به سمت کیوت ۶ تغییر خواهد یافت. بنابراین انتظار میرود کیوت ۶ تا پایان سال ۲۰۲۰ آماده شود. قبل از اینکه همه به چیزهای جدید بپردازیم، بیایید برخی از ارزشهای پایه از هستهٔ اصلی کیوت را برای کاربران خود یادآوری کنیم تا چیزهایی که نمیخواهیم تغییر کنند را تعریف کنیم. چه چیزی Qt را برای کاربران ما ارزشمند میکند؟ کیوت محصولی است که در بازارهای مختلفی مورد استفاده قرار میگیرد، ارزشهای اصلی در هستهٔ کیوت برای مشتریان و کاربران ما عبارتند از: ماهیت چند-سکویی آن، به کاربران این امکان را میدهد تا برنامههای خود را با استفاده از این فناوری به تمامی سیستمعاملهای رو میزی، موبایل و سیستمهای تعبیه شده (اِمبِدها) مستقر کنند. مقایس پذیری آن از دستگاههای کم مصرف و یک منظوره تا برنامههای دسکتاپ پیچیده و یا سیستمهای متصل شده. رابطهای برنامهنویسی و ابزارها و مستندات در سطح جهانی، ایجاد برنامهها را سادهتر میکند. حفظ، ثبات (پایداری) و سازگاری، امکان حفظ بانک بزرگی از کدها با حداقل تلاش برای نگهداری آنها. یک اکو سیستم بزرگ توسعهدهنده با بیش از ۱ میلیون کاربر. یک نسخهٔ جدید از کیوت باید خواستههای محصول ما را مطابق با نیازهای بازار تنظیم کند، و در عین حال پنج ویژگیِ بالا را به خوبی حفظ کند. بازار دسکتاپ، ریشهٔ پیشنهادات و یک بازار قوی و مهم برای کیوت است؛ در این مرحله است که بیشترین تماسها با ما و در انجمنهای کیوت از طرف کاربران صورت میگیرد که باید سالم نگه داشتن و رشد آن مهم باشد. بزرگترین بخش از رشد کیوت نیز مربوط به دستگاههای تعبیه شده و متصل شده میباشد؛ صفحات نمایش لمسی به تعداد تصاعدی در حال افزایش است که در کنار آن افزایش قیمت سختافزار برای این دستگاهها وجود دارد. چیپستهای کم مصرف، میکروکنترلرها، همراه با صفحه نمایش لمسی به اندازههای کوچک در همه جا استفاده میشوند. بسیاری از این دستگاهها عملکردی نسبتاً سادهای دارند، اما به رابط کاربری صیقلی و صافی نیاز دارند. بنابراین حجم زیادی از این دستگاهها ایجاد میشود و ما باید اطمینان حاصل کنیم که میتوانیم با ارائهٔ خود آن فضا را هدف قرار دهیم تا بتوانیم قوبل مقیاس پذیری خود را عملی کنیم. در عین حال، رابطهای کاربری در طیف دستگاهها همچنان به افزایش پیچیدگی ادامه میدهند که شامل هزاران صفحه مختلف و برنامههای بسیاری است. ادغام عناصر سه بعدی و دو بعدی در یک رابط کاربری مشترک خواهد بود که در کنار آن استفاده از واقعیت افزوده و مجازی نیز وجود خواهد داشت. عناصر هوش مصنوعی بیشتر در حوزهٔ برنامهها و دستگاهها مورد استفاده قرار میگیرد و ما نیاز به روشهای آنسان برای ادغام با آنها داریم. رشد شدید تعداد دستگاههای متصل به هم و همچنین الزامات بسیار بالاتر در تجربهکاربر باعث میشود تا برای ساده سازی ایجاد برنامهها و دستگاهها، روی ابزارهای کلاس جهانی تمرکز کنیم. هماهنگ سازی و ادغام طراحان UX در گردش کار توسعه یکی از اهداف است؛ اما بسیاری از زمینههای دیگر وجود خواهد داشت که ما باید برای ساده سازی زندگی کاربران تلاش کنیم. کیوت ۶ یک نسخهٔ اصلی و جدید برای Qt خواهد بود؛ هدف اصلی با چنین نسخهٔ اصلی و جدید، آماده سازی کیوت برای شرایط مورد نیاز در سال ۲۰۲۰ و بعد از آن، تمیز کردن کدهای پایهٔ ما و حفظ آسانتر است. به همین ترتیب تمرکز روی آن مواردی خواهد بود که نیاز به تغییرات معماری در کیوت دارند و بدون شکستن برخی از سازگاریها با سریهای کیوت ۵ قابل انجام نیست. در زیر برخی از تغییرات اساسی که ما باید در کیوت ایجاد کنیم برای مناسبتر کردن آن برای سالهای آینده ارائه شده است. نسل بعدی کیواِماِل (QML) زبان QML و فناوری Qt Quick فناوریهای اصلی رشد سالهای گذشتهٔ ما بوده است. روشهای بصری ایجاد واسطهای کاربری با استفاده از آن فناوریها نقطه فروش بی نظیری از پیشنهاد ما است. اما QML، همانطور که برای کیوت ۵ ایجاد شده است، دارای تعداد زیادی تغییرات ناگهانی و محدودیت است. این به نوبهٔ خود به این معنا است که، امکان پیشرفتهای چشمگیری وجود دارد که ما قصد داریم با کیوت ۶ آنها را پیاده سازی کنیم. معرفی وابستگی زیاد به نوع (strong typing)، وابستگی کم به نوع (weak typing) امکان ایجاد تغییر در کدها را برای کاربران ما سخت میکند. سیستمی از مدل وابستگی زیاد به نوع امکان پشتیبانی از این تغییرات را در محیطهای یکپارچهٔ توسعهٔ نرم افزار و سایر ابزارها به کاربران میدهد و به طور چشمگیری حفظ و نگهداری از آنها را راحت میکند. همچنین، قادر به تولید کدهای اجرایی هرچه بهتر و با سربار کمتر خواهیم بود. اعمال JavaScript به عنوان یک ویژگی اختیاری، با توجه به این موضوع، داشتن یک موتور کامل جاوا اسکریپت هنگام استفاده از QML میتواند مشکلات را پیچیدهتر کند و به خصوص هنگام هدف قرار دادن سختافزار کم مصرف مانند میکرو کنترلرها یک مشکل اصلی محسوب میشود. اما در بسیاری از موارد استفاده از آن بسیار مفید است. حذف نسخه سازی QML، با ساده کردن برخی از قوانین بررسی و جستجو و تغییرات در برخی از خواص میتوانیم نیاز به نسخه را در QML حذف کنیم. این به نوبهٔ خود منجر به ساده سازیهای زیاد در موتور کیواماِل میشود. حجم کار در حفظ فناوری کیوت کوئیک و سادهتر کردن استفاده از QML و Qt Quick را برای کاربران بسیار سادهتر خواهد کرد. حذف ساختار دادههای تکراری بین QObject و QML در حال حاضر، برخی از ساختار دادهها بین meta-object و QML کپی و تکرار میشوند و عملکرد (کارایی و پرفرمنس) را در استارتاپ برنامه کاهش میدهد و باعث افزایش مصرف حافظه نیز میگردد. بنابراین با متحد کردن ساختارهای دادهها، ما قادر خواهیم بود بخشی اعظمی از آن را حذف کنیم. خودداری کردن از ساختارهای داده تولید شده این مربوط به نکتهٔ قبل است، جایی که در حال حاضر بسیاری از ساختارهای داده تکراری در زمان اجرا تولید میشوند. باید تولید اکثر آنها در زمان کامپایل کاملاً امکانپذیر باشد. پشتیبانی از کامپایل QML برای بهرهوری از کدهای بومی C++، با وابستگی زیاد به نوع و قوانین جستجوی سادهتر، میتوانیم QML را به کدهای بومی C++ تبدیل کنیم که نتیجهٔ آن به طور قابل توجهی عملکرد زمان اجرا را افزایش میدهد. پشتیبانی از پنهان کردن جزئیات اجرا، روش و خصوصیات «خصوصی» یک نیاز طولانی مدت است تا بتوانید دادهها و عملکردها را در اجزای QML پنهاد کنید. هماهنگسازی و ادغام بهتر ابزارها، مدل کدهای ما غالباً برای QML ناقص است و باعث میشود که تغییر مکان و خطاها را در زمان کامپایل غیر ممکن کند. با تغییرات فوق، میتوان تشخیص کامپایلر را ارائه داد که بتواند با C++ و همچنین پشتیبانی از آن پالایشِ کدها را بهبود بخشد. نسل بعدی گرافیکها بسیاری از موارد در حوزهٔ گرافیک در نسخهٔ کیوت ۵ تغییر یافتهاند. این باعث میشود که برای حفظ رقابت و توسعه در پُشته انجام شود. با کیوت ۵، ما از رابطهای برنامهنویسی OpenGL را برای گرافیکهای ۳ بعدی استفاده کردیم. از آن زمان به بعد، میزبانی از رابطهای برنامهنویسی جدید نیز تعریف شده است. بنابراین وُلکان (Vulkan) جانشین مشخصی برای OpenGL در لینوکس است، اپل نیز مِتال (Metal) را تحت فشار قرار داد تا آن را جایگزین کند و مایکروسافت DirectX را دارد. این بدان معنی است که کیوت در آینده مجبور است به صورت یکپارچه با تمام رابطهای برنامهنویسی کار کند. برای اینکه این ویژگی امکانپذیر باشد، باید یک لایهٔ جدید که رابطهای برنامهنویسی گرافیکی را انتزاع میکند مانند (QPA برای ادغام سکو) به نام رابط سختافزاری RHering تعریف شود. ما نیز باید زیر ساختهای ارائه شدهٔ خود (Qt Quick Scenegraph، QPainter و پشتیبانی ۳ بعدی) را در بالای آن لایه قرار دهیم. مجموعهٔ رابطهای برنامهنویسی گرافیکی مختلف باعث میشود که ما از زبانهای مختلف سایهزنی پشتیبانی کنیم. ابزار Qt Shader به عنوان یک ماژول به ما کمک میکند تا سیستمِ سایهزنی را به صورت همزمان (کراس-کامپایل) و در زمان اجرا کامپایل کنیم. بحث ۳ بعدی نقش مهم و مهمتری را ایفا میکند، و پشتیبانی فعلی ما یک راه حل یکپارچه برای ایجاد رابط کاربری (UI) هایی که حاوی هر دو عنصر ۲ و ۳ بعدی باشد را ندارد. ادغام QML با محتوا از Qt3D و یا Qt 3D Studio در حال حاضر کار دشواری است و باعث سرریز شدن برخی از کاراییها و عناصر نمایشی میشود. علاوه بر این همگام سازی انیمیشنها و انتقالها بر روی یک فریم با سطح فریم بین محتوای ۲ و ۳ بعدی غیر ممکن است. ادغام جدید محتوای ۳ بعدی با فناوری کیوت کوئیک با هدف حل این مشکل ایجاد شده است. در این حالت، یک سیستم ساخت (رندر) کامل و جدید به شما امکان میدهد تا محتوای ۲ و ۳ بعدی را با هم ظبط کنید. با این کار QML به زبان UI تعریف و تبدیل میشود که سه بعدی هستند و نیاز به فرمت UIP برطرف میشود. ما یک پیشنمایش از کیوت کوئیک جدید با پشتیبانی سه بعدی در حال حاضر با کیوت ۵.۱۴ ارائه میدهیم که اطلاعات بیشتر در یک پست جداگانه ارائه خواهد شد. سرانجام پشتهٔ گرافیکی جدید نیاز به پشتیبانی از خط لولهٔ برای چیزهای گرافیکی هستند که این امکان را میدهد تا آنهایی که در زمان کامپایل برای سخت افزار مورد نظر تهیه شدهاند آماده کرده و از موارد مورد نظر استفاده کند. برای مثال، فایلهای PNG را به بافتهای فشرده تبدیل میکند و بسیاری از آنها را به بافت (Texture) تبدیل کند. سایهها و مِشها را به قالبهای باینری بهینه شده و موارد دیگر تبدیل خواهد کرد. همچنین هدف ما این است که یک موتور متحد برای پوسته/ظاهر در کیوت ۶ ارائه دهیم که به ما این امکان را میدهد تا از نظر ظاهری و احساسات بر روی دسکتاپ و موبایل آن را بر روی هر دو فناوری کیوت ویجت و کیوت کوئیک ارائه کنیم. ابزار یکپارچه و سازگار ابزارهای گرافیکی ما برای ساخت رابطهای کاربری به دو بخش با استودیو کیوت ۳ بعدی (Qt 3D Studio) و استودیو طراحی کیوت (Qt Design Studio) تقسیم بندی شدهاند. علاوه بر آن، استودیو ۳ بعدی اند;ی از بقیه کیوت جدا شده است که باعث میشود کمی بیشتر سعی بر آن شود! ابزارهای طراحی نیز به ایجاد محتوا مانند، محتوای ساخته شده در Photoshop، Sketch، Illustrator، Maya، 3DsMax و دیگر موارد ادغام شده است. ابزارهای توسعه به توجه زیادی برای تمرکز دارد تا بتوانیم بهترینها را در پشتیبانی کلاس برای QML، C++ و پایتون ارائه دهیم. یک ابزار متحد و یکپارچه این اجازه را میدهد که یک طراح UX بتواند از قابلیتهای طراحی در کیوت کریتور استفاده کند و طراحان میتوانند از ویژگیهای ابزارهای توسعهدهنده مانند تهیه یک پروژه یا آزمایش روی یک دستگاه بهرهمند شوند. ابزار ساخت QMake به عنوان ابزار ساخت در کیوت ۵ مورد استفاده قرار میگیرد که تعداد زیادی تغییرات ناگهانی و محدودیتها خواهد دارد. برای کیوت ۶، هدف ما این است که CMake را به عنوان سیستم ساخت ثالث و استاندارد برای ساخت خود کیوت استفاده کنیم. چرا که سیمیک تاکنون پرکاربردترین سیستم ساخت در جهان برای سیپلاسپلاس بوده است و ادغام هرچهبهتر آن کاملاً مورد نیاز است. البته پشتیبانی از QMake ادامه خواهد داشت، اما آن را توسعه نخواهیم داد یا از آن برای ساخت فریمورک کیوت استفاده نخواهیم کرد. بهبود رابطهای برنامهنویسیC++ سیپلاسپلاس طی سالهای گذشته تغییرات بسیار زیادی کرده است؛ در حالی که ما مجبور بودیم کیوت ۵.۰ را روی سیپلاسپلاس ۹۸ پایهگذاری کنیم. اما اکنون میتوانیم به سیپلاسپلاس ۱۷ برای پایهگذاری کیوت ۶ اطمینان کنیم. این بدان معنی است که C++ عملکرد بسیار بیشتری را نسبت به زمان توسعه و اجرای کیوت ۵ که در دسترس نبود ارائه خواهد کرد. هدف ما با کیوت ۶ بهتر شدن با یکپارچهسازی و ادغام قابلیتها بدون از دست دادن پشتیبانی و سازگاری از روشهای پیشین (رو به عقب یا همان backward compatibility) است. برای کیوت ۶، هدف ما این است که برخی از قابلیتهای معرفی شده با QML و فناوری Qt Quick را از طرف C++ در دسترس قرار دهیم. بنابراین ما در تلاش برای معرفی یک سیستم خاص برای QObject و کلاسهای مرتبط هستیم. موتور اتصال دهنده را از QML در هستهٔ کیوت ادغام میکنیم و آن را از سیپلاسپلاس در دسترس قرار میدهیم. این سیستم خاص از موتور اتصال به کاهش قابل توجهی در سربار زمان کار و مصرفه حافظه در اتصال منجر میشود و آنها را برای همهٔ قسمتهای Qt، نه تنها Qt Quick قابل دسترس میکند. پشتیبانی از زبان با کیوت ۵.۱۲، پشتیبانی از پایتون معرفی شده است. همچنین مرورگر را به عنوان پلتفرم جدید از طریق کیوت برای وِب اسمبلی اضافه کردهایم. پس از انتشار کیوت ۶.۰ نگهداشتن و گسترش بیشتر بر روی سطح چند-سکویی بخش مهمی از اهداف و مسیر توسعهٔ سریهای کیوت ۶ خواهد بود. سازگاری با کیوت ۵ و افزایش سازگاریها و بهبودها سازگاری با نسخههای قدیمیتر بسیار مهم است، بنابراین وقتی کیوت ۶ را توسعه میدهیم یک نیاز اساسی محسوب میشود. توسط چهارچوب کیوت میلیونها خط کد نوشته شده است و هرگونه تغییرات در ناسازگاری که انجام شود هزینهای را برای کاربران خواهد داشت. علاوه بر این، کار بیشتری برای تغییرات در کیوت ۶ نیاز است تا کاربران کم کم با آن سازگار شوند که منجر به هزینههای بیشتر از طرف تیم توسعهٔ کیوت برای حفظ آخرین نسخه کیوت ۵ خواهد بود. به این ترتیب، ما باید به فکر جلوگیری از ساطع شدن خطاهای احتمالی در زمان کامپایل و یا زمان اجرا برای کاربران میشود باشیم. در حالی که ما نیاز به حذف بخشهایی از کیوت خواهیم داشت، باید اطمینان حاصل کنیم که کاربران ما از عملکرد مورد نیاز خود برخوردار هستند. این بدان معنا است که کلیدهایی مانند Qt Widgets و سایر قسمتهایی که توسط بخش بزرگی از کاربران ما مورد استفاده قرار میگیرد، در دسترس باشد. ما در حال برنامهریزی برای افزایش بسیاری از پیشرفتها در کلاسهای اصلی و عملکردی هستیم که در سری کیوت ۵ نتوانستیم انجام دهیم. هدف این است که سازگاری کامل منبع را حفظ کنیم، اما از آنجا که میتوانیم سازگاری باینری را با کیوت ۶ بشکنیم، میتوانیم پاکسازیها و اصطلاحات کاملاً زیادی را انجام دهیم که در کیوت ۵ نمیتوانستیم آن را عملی کنیم. با این وجود، ما باید به جلو پیش برویم و برخی از پاکسازیها که در کیوت ۵ در مورد کلاسها، توابع و یا ماژولها عنوان شده بود را در کیوت ۶ به طور کامل اعمال کنیم. این کار باعث میشود ما روی مبنای کدگذاری شدهٔ فعلی تمرکز بیشتر و بهتری داشته باشیم. با این حال، انتقال به دور از قسمتهای منسوخ شده باید تا حد امکان ساده باشد و کاربران ما میتوانند با استفاده از کیوت ۵.۱۵ «پشتیبانی بلند مدت» به صورت ایدهآل این کار را انجام دهند. هدف ما باید این باشد که کیوت ۶ به اندازهٔ کافی با نسخهٔ ۵.۱۵ سازگار باشد تا فرد بتواند به راحتی یک بخش اعظمی از کد خود را حفظ کند، به طوری که کد آن در هر دو نسخهٔ ۵ و ۶ قابل کامپایل باشد. بازار و ساختار فنی محصول علاوه بر بهبود چهارچوب و ابزارهای کیوت، هدف ما ایجاد بازار جدیدی برای قطعات و ابزارهای توسعه است. این بازار بر روی کاربران مستقیم ما متمرکز خواهد شد که برنامههای کاربردی و دستگاههای تعبیه شده را طراحی و توسعه میدهند؛ به این ترتیب این یک مرکز تجمع اصلی برای اکو سیستم کیوت خواهد بود که این امکان را به شخص ثالث میدهد تا نسخههای اضافی خود را در کیوت منتشر کنند و هم محتوای رایگان و تجاری را که برای آن هزینه پرداخت میکنند. کیوت طی سالهای گذشته رشد بسیار زیادی داشته است، تا جایی که ارائهٔ نسخهٔ جدید آن یک کار مهم است. با استفاده از کیوت ۶ فرصتی برای بازسازی محصولات ارائه شده ما وجود دارد و یک محصول اصلی و کوچکتر که شامل چهارچوبها و ابزارهای اساسی است. ما از بازار استفاده خواهیم کرد تا چهارچوب و ابزارهای اضافی خود را ارائه دهیم، نه به عنوان یک بستهنرمافزاری وابسته به کیوت! چشمانداز فنی تا اولین نسخهٔ کیوت ۶ تکامی خواهد یافت. اگرچه معتقد هستیم که این سند بسیاری از مهمترین نکات را برای نسخهٔ بعدی کیوت معرفی میکند اما مطمئناً کامل نیست. اگر شما هم ایدهٔ دیگری دارید میتوانید آن را با ما در میان بگذارید.