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

کیت توسعه‌ی رابط کاربری در Qt Quick

پست های پیشنهاد شده

سلام و درود با طعم کیوت 🤗

همانطور که می‌دانید توسعه نرم‌افزار‌ها و اپلیکیشن‌های کاربردی در هر پلتفرمی نیازمند ابزار‌ها و کنترل‌های مهمی هستند که این امر موجب سرعت بخشیدن به زمان طراحی می‌شود. در صنایع مختلف برنامه‌نویسی مخصوصاً سمت وِب کیت‌های بسیاری جهت تولید و توسعه سریع همراه با کامپوننت‌های بسیار خوبی ارائه شده است که برخی از آن‌ها عبارتند از Bootstrap، UIkit و غیره...

ما در نظر داریم کیتی را همانند کیت بوت استرپ برای کیوت کوئیک توسعه دهیم. بنابراین هر کامپوننت یا ماژولی که احساس نیاز از آن می‌شود را برای ما مطرح کنید. ابتدا ما ویژگی‌های بوت استرپ را شبیه سازی خواهیم کرد و سپس کیت‌های مورد نیاز شما را که در تاپیک‌های دیگر اعلان می‌شوند با این کیت ادغام خواهیم کرد.

 

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

 

کامپوننت‌ها

  • Alerts
  • Ads
  • ActionButton
  • ActivityIndicator
  • Accordion
  • Badges
  • Button
  • CircleButton
  • Card
  • CardInfo
  • CardBox
  • CircleImage
  • CircleProgressBar
  • Dropdown
  • DifficultySection
  • Forms
  • Modal
  • Menu
  • MessageBox
  • Map (Based on Google Map)
  • Marker
  • Navs
  • Navbar
  • Notification
  • Profile
  • Pagination
  • Popovers
  • Progress
  • ProgressCircle
  • Space
  • Share
  • SocialFeed
  • Tooltips
  • Header
  • Footer
  • FontSystem
  • Slider
  • InputBox
  • Rate (Vote)
  • WinButton

پیشنهادات شما می‌تواند در این لیست اضافه شود...

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

  • نکته :‌ تمامی کنترل‌ها باید واکنش گرا باشند.
  • این کیت تحت فونت آیکونیک‌های حرفه‌ای fontawesome مجهز خواهد شد.
  • نکته ۲‌ : تمامی کامپوننت‌ها باید تحت قالب راست به چپ و چپ به راست پشتیبانی شوند.
  • نکته ۳ : تمامی کامپوننت‌ها باید به دو زبان فارسی و انگلیسی واکنشگرا و تحت فونت‌های ویژه پشتیبانی شوند.
  • تشکر شده 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

با توجه به تحریم‌ها و سیاست‌های ضد ایرانی گوگل به نظرم بهتره حالا که داریم زمان میذاریم توسعه نقشه رو بر پایه API پارسیجو پیش ببریم یا حداقل طوری باشه که با پارسیجو هم سازگار باشه .

پارسیجو یک شرکت ایرانی هست که با موتور جستجو کارش رو شروع کرد ولی خیلی فعال و با کیفیت پیش رفت . الان هم یک API تمیز برای نقشه ارائه داده که با نگاهی که من انداختم ارزش وقت گذاشتن داره.

مورد دیگه ای که به نظرم نیاز هست نمودار در کیوت هست من این مدت داشتم روی نمودار توی کیو ام ال و ویجت وقت میگذاشتم متوجه شدم در حال حاضر نمودارها در کیوت بر پایه Graphics View Framework که طبق مطالعاتی که روش داشتم اصلا به درد نمیخوره علیرقم این که بسیار پر استفاده هست در صورتی که میخواید بیشتر بدونید میتونید جستجو کنید و ویدئو QtWS16- The Curse of Choice: An Overview of GUI technologies in Qt, Andy Nichols, The Qt Company هم لپ مطلب رو توضیح میده.

تازه وضعیت توی کیو ام ال حتی بدتر از وضعیت توی QGraphicsView خود سی پلاس پلاس هست چون توی سی پلاس پلاس به QGraphicsScene دسترسی داریم برای اضافه کردن موارد گرافیکی دیگه ولی توی کیو ام ال به اون هم دسترسی نداریم و مثلا برای کشیدن یک مستطیل برای انتخاب کردن یک قسمت از چارت باید کلی دردسر بکشیم.

در کل به نظرم نیاز هست با QQuickItem و بر پایه Scene Graph زده بشه که البته این مورد رو مدتی هست شروع کردم ولی به دلیل مشغله زیاد وقت نکردم تمومش کنم و فعلا برای کشیدن نمودارهای خطی استفاده داره که البته هنوز Axis رو هم نشون ندادم روش و دنبال روشی بودم که بشه از تو سی پلاس پلاس و بدون نیاز به کیو ام ال تکست رو هم رندر کنم ولی انگار چاره ای نیست فعلا و باید به صورت داینامیک متن از سی پلاس پلاس توی یکو ام ال درست کنم و موقعیتشون رو تنظیم کنم که البته روش کثیفی به نظر میرسه.

در کل این لینک پروژه چارت بر پایه QQuickItem هست که تصمیم دارم تکمیلش کنم و علاوه بر اون میخوام نقشه بر پایه QQuickItem رو هم شروع کنم که البته اون رو بخش تحقیقش رو انجام دادم و در صورتی که زمان داشته باشم میشینم پاش و هیچ چالشی برای انجامش ندارم البته ممکنه سر همین رندر کردن متن توی پاپ آپ به همین مشکل بخورم توش که اون مشکل خاصی نیست میشه به همین روش داینامیک انجامش داد .

پس پیشنهادات من این دو مورد هست :

  1. افزودن نقشه پارسیجو
  2. توسعه نمودارها بر پایه QQuickItem و Scene Graph

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

 

 

  • پسندیدن 1

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

  • کاربران آنلاین در این صفحه   0 کاربر

    هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

  • مطالب مشابه

    • توسط miladrahbari
      سلام،
      من در پروژه‌ی خودم از یک ویجت استفاده می‌کنم که داخل آن ویجت یک کلاس mainwindow وجود دارد. در داخل این کلاس من دو تا qquickwidget تعریف کردم تا از المان های درست شده در qml استفاده کنم.
      حالا سوالی که مطرح می‌شود این است. فکر کنید من در داخل یک ویجت ۱۰ بار از این component که در qml وجود دارد استفاده کردم. حالا مثلا مقدار یک component کیو ام ال رو تغییر می‌دهم و شکل ظاهری این المان تغییر می‌کند. وقتی که شکل این المان تغییر می‌کند کل صفحه (ویجت) repaint می‌شود؟؟؟ یا فقط اون المان خاص؟؟؟
      ممنون
    • توسط MohammadTahaRabie
      سلام 
      من میخواستم از یه QPlainTextedit خط خط نوشته هارو بخونم و هر کدوم رو به یک QThread ام بدم و از QPlainTextedit پاک بشه هر خطی که خونده شده رو 
      چطور میتونم اینکارو انجام بدم؟  
      C++ کم بلدم دارم یاد میگیرم ممنون میشم کمک کنید.
    • توسط GornerLabo
      با سلام خدمت اساتید محترم. اگر بخواهیم مقدار بازگشتی از رایت چندین دستور در مورد کلاس QSerialPort به صورت دلخواه ذخیره کنیم باید به چه شکل عمل کرد؟
       
      کد زیر برای دستوری است که عمل رایت دستور را انجام میدهد:
      port->setPortName(""); // COM PORT NAME port->setBaudRate(QSerialPort::Baud9600); port->setFlowControl(QSerialPort::NoFlowControl); port->setParity(QSerialPort::NoParity); port->setDataBits(QSerialPort::Data8); port->setStopBits(QSerialPort::OneStop); port->open(QSerialPort::ReadWrite); if(port->isOpen()) { port->write(); // command 1 for write port->write(); // command 2 for write port->write(); // command 3 for write port->write(); // command 4 for write } حالا برای هر دستور رایت یک مقدار بازگشتی دریافت خواهیم کرد. پس میتوان با connect سیگنال readyRead با یک اسلات به صورت کد زیر این مقدار بازگشتی رو ذخیره کرد:
      connect(port,SIGNAL(readyRead()),this,SLOT(MySlot())); QByteArray b = port->readAll(); QFile file("e:/test/raw.bin"); if(!file.open(QIODevice::WriteOnly | QIODevice::Append))return; file.write(b); file.flush(); file.close(); حالا اگر بخواهیم مقدار بازگشتی رو از دستور رایت مشخصی دریافت کنیم ، شیوه صحیح کار چطور است؟
    • توسط کامبیز اسدزاده
      کیوت (به انگلیسی: Qt) مجموعه‌ای از کتابخانه‌ها و سرآیندهای نوشته‌شده به زبان سی++ است که به برنامه‌نویس امکان توسعه آسان نرم‌افزارهای کاربردی را می‌دهد. کیوت شامل چندین کلاس برای کار با واسط گرافیکی، چندرسانه، ابزارهای پایگاه‌داده، شبکه و … است. نرم‌افزارهای نوشته شده با ابزار کیوت قادرند تا با استفاده از یک کامپایلر زبان سی‌پلاس‌پلاس برای طیف وسیعی از سیستم‌عامل‌ها از جمله گنو/لینوکس (نسخه‌های رومیزی و وسیله‌های قابل حمل)، ویندوز، ویندوز CE، مک‌اواس و … همگردانی شوند. بدین ترتیب حمل نرم‌افزار نوشته شده بدون تغییر در متن کد نوشته شده امکان‌پذیر است. از کیوت در زبان‌های برنامه‌نویسی متعددی مانند سی++ و جاوا و پایتون می‌توان استفاده‌کرد.
       
      جهت مشاهده‌ی مباحث مرتبط با این کتابخانه به این بخش مراجعه کنید.
    • توسط کامبیز اسدزاده
      محیط‌های توسعه مختلفی برای (بسته ابزار) تولکیت Qt وجود دارد که اکثراً توسط برنامه‌نویسان علاقه‌مند به‌این تولکیت ایجاد شده‌اند. جدیدترین محیط توسعه‌این تولکیت Qt Creator نام دارد. این محیط همراه با نرم‌ افزارهای دیگری برای راحتی کار با لینوکس عرضه می‌شود از جمله Assisstant که یک مجموعه از کاربردها و طرز استفاده از کتابخانه‌های کیوت، Examples and Demos که مثال‌هایی برای آشنایی هر چه بیشتر با کیوت است، زبان‌شناسی که برنامه‌ای به منظور ترجمه‌ی نرم‌افزارهای نوشته شده به‌این زبان و یا ساخت نرم‌افزارهای چند زبانه با سادگی هر چه تمام تر است و مهم تر از همه QtDesiner که نرم‌افزاری برای طراحی رابط‌های کاربری با استفاده از ویجت (دکمه، کادر متن و...) های از پیش طراحی شده است.
      همچنین توسط افزونه‌هایی که برای این کتابخانه نوشته شده است شما می‌توانید از محیط هایی مانند Visual Studio نیز استفاده نمایید. مهم ترین ویژگی این برنامه‌این است که برنامه‌های نوشته شده با این IDE قابلیت اجرا و پشتیبانی در طیف وسیعی از سیستم‌عامل‌ها نظیر ویندوز، لینوکس، مک و حتی تلفن های همراه نظیر سیتسم عامل سیمبین را داراست و یکی از نکات مهم این نرم افزار پشتیبانی از زبان‌های برنامه‌نویسی نظیر QML, CSS & JavaScript است.
      آخرین اطلاعات و مباحث مرتبط با اخبار، به‌روز‌رسانی‌ها و سوالات مرتبط با این محیط توسعه در این بخش می‌باشد. ویژگی‌های اخیر در این محیط توسعه  
×