تازه های سایت
مقدمات گرافیک دو بعدی در کیوت قسمت دهم

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

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

توی این قسمت سعی میکنیم وقتی روی scene راست کلیک شد یک منویی باز بشه و به ما امکاناتی رو بده.

چه امکاناتی ؟ در واقع وقتی ما روی یه ایتم راست کلیک میکنیم گزینه هایی ظاهر بشه که به ما این امکان رو بده که برای آیتمی که روش راست کلیک کردیم pen و brush ست کنیم.

[dl url=”http://asklinux.ir/dadkhah/qtips/graphics/part10.mp4″ title=”دانلود” desc=”دانلود قسمت دهم آموزش گرافیک دو بعدی در کیوت” type=”video” align=””]

باز هم تشکر از sorena عزیز به خاطر اینکه این امکان رو ایجاد کردند که بتونیم لینک مستقیم بدیم.

۱,۶۸۴ total views, 1 views today

Print Friendly
Facebook0Google+0Twitter0LinkedIn0

درباره‌ی سعید دادخواه

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

۶ نظر

  1. سلام
    سایت بسیار عالی داری. بهتر بگم سایتی با مطلبی که تا پیش از این اموزش های فارسی کم داشت و بسیار عالی هم داری پیش میری.
    زیاد اهل برنامه نویسی نیستم ولی از اینکه با این کیفیت داری مطلب در اختیار دیگران قرار میدی بسیار سپاس گذارم
    خوشحال میشم به سایت من هم سری بزنی و نظرت رو بدی
    با آرزوی موفقیت
    http://www.falearn.ir

  2. شما رو لینک کردم
    به امید آشنایی و دوستی بیشتر
    موفق باشید

  3. سلام
    ۱- تشکر.
    ۲- بعد از افطار بخونید!
    ۳- آقا زمان ۱۲ دقیقه و ۵۹ ثانیه است یا مثل قسمت قبل به نوعی ناقص تمام می¬شود؟ این دفعه واقعا خیلی آنی و وسط کار قطع شد!!!یعنی بدون خداحافظی بود. لطفا بگویید که این time درست است یا نه؟ شاید دانلود من ناقص بوده!
    ۴- دیگه از طریق کلاس این مباحث ادامه پیدا نکردند؟ از شماره¬ی پیش اینطور شد!
    ۵- یه تجربکی در QPaint دارم، حالا سوای مقایسه از نظر سرعت که گویا قویتر است برای کارهای real time، این به اصطلاح جنگولک بازی¬ها رو که اگه نقطه¬ی شروع بزرگتر باشد باید تدابیری اتخاذ کرد و … را ندارد!
    ۶- خطایی که در برنامه از شما گرفت برای نقطه¬ی global یا نسبت به scene نبود، (اینکه با این مضمون در فیلم گفته شد باید موقعیت رو از سمت چپ مانیتور بدیم به exec)، مربوط به عدم تبدیل QpointF به QPoint بود!(می¬شد cast کرد، هر چند به جواب غلط می¬رسیدیم)چرا که menu، QPoint میگیره و خروجی scenePos، QPointF هست. اگرچه menu.exec() با global کار می¬کنه.
    ۷- آقا ما نقطه¬ی ۵ و ۵ رو ندیدیم به علت کپچر شدن پنجره¬ی انتخابی شما برای ضبط!
    ۸- هنوز Qt 5 رو نصب نکردم ولی می¬دونم اونطور که در راهنما آمده حداقل از نسخه¬ی ۴٫۶ پارامتر دوم برای itemAt ضروری است و مقدار پیش فرضی تعریف نشده! یعنی اگر از نسخه¬ی ۵ هم استفاده نمی¬کنیم، باید همین کار رو کرد.
    ۹- چرا از cast معمولی استفاده نشد یعنی: (QGraphicsRectItem*) item، و از qgraphicsitem_cast استفاده شد و این چیه که در راهنما گفته برای آیتم¬های سفارشی، باید type() پیاده¬سازی مجدد شود؟ و حالا که این آیتم سفارشی نیست، لزومی به استفاده از این qgraphicsitem_cast هست؟ و مگر چه کار خاصی انجام می¬دهد؟ این رو برای این گیر دادم که یک سری از cast های درون سازمانی qt رو خوب نفهمیدم، حداقل با اینکه خونده بودم، الان یادم نیست.
    ۱۰- شاید چون مباحث دیگر رو کم و بیش کار کرده بودم، نکاتی رو که احیانا به ذهنم می¬رسید و شاید (شاید) با تجربیاتی که داشتم، حل و فصل می¬کردم، چون در این زمینه¬ی فعالیت خاصی نداشتم، دوست دارم خیلی دقیق¬تر بررسی کنم.
    ۱۱- شاید چون تنبلی می¬کنم یا وقت متمرکز (بخونید تنبلی!) ندارم این همه سوال می¬پرسم. مثلا خیلی از روز اول برام عجیب است که شما می¬گویید، scene خودش را با اضافه شدن آیتم، تغییر سایز می¬دهد؟ پس چرا در مقدار اولیه دادن، اندازه¬ی خاص می¬دهیم و همان اندازه¬های this (فرم) رو نمی¬دهیم؟ و خیلی چراهای دیگه که فکر کنم در زمان کار باQPaint برایم پیش نیومده بودند! شاید هم خیلی گیرمی¬دهم؟
    ۱۲- بقیه واقعا سوالی ندارند؟ همه چیز آرومه؟ من چقدر … !
    ۱۳- سوالات دیگر وقتی خودم پیاده¬سازی کردم!
    ۱۴- اینا جسارت تلقی نشوند. خیلی دوست دارم ریز ریز شویم که فکر کنم کد خوب زدن در ریز شدن است. (چرا باید Menuو action ها در داخل تابع تعریف شود؟ یعنی هر بار برای این کار ایجاد شود و در انتها از بین برود؟ چرا باید در فروم Q&A باید در بخش شبکه-سوکت، data با مقادیر اولیه پر شود (آخیش بالاخره گفتم!)، البته یادتون باشه اونجا به quint16 گیر دادم، چون اجتناب ناپذیر بود! آقا این قدر گیر نده!!).
    ۱۵- خوب بود اگر وقتی کلیک راست می¬شد، ببینیم در منطقه¬ی آیتم هست یا نه و در صورت بودن، منو رو نمایش دهیم. یعنی اول ببینیم در نقطه¬ی کلیک شده در منطق¬ی scene، آیتمی وجود دارد یا نه و سپس منو را نشان دهیم.
    ۱۶- استاد، خوب نکات رو می¬گذارید به عهده¬ی بیننده!!!
    ۱۷- به نظر شما اگر من در کلاس شما باشم، اصلا به ادامه¬ی درس می¬رسیم؟ ما خوشحال می¬شیم بیایید تهران ولی این¬¬ها رو هم داره!
    ۱۸- میدونم و ببخشید! شما منو محو شده در نظر بگیرید!
    ۱۹- انشاءالله مورد ۲ رعایت شده باشه!
    ۲۰- حکایت همچنان … .

    • سلام.
      ۱-خواهش میکنم.
      ۲-چش
      ۳-نه یه قسمتی گرفتم ولی خوب از آب در نیومد واسه همین کات شد 😐
      ۴-چرا اونا هم هست ولی حس کردم این چند قسمت وسط اینجا برای آموزش بهتر نیازه. این داغ داغه 🙂
      ۵-بله
      ۶-بله حق باشماست. من هم همین کار رو نکردم ؟! ببخشید ماه رمضونه اگه سوتی میدم ببخشید. ولی تا اونجایی که یادمه یه لحظه فیلم رو Pause کردم و رفتم دنبال تابعش شاید واسه همین توضیحی در مورد خطا ندادم.
      ۷-:| ماه رمضونس 😐 اصن یادم نبود :))
      ۸-:| ماه رمضان ماه خداست :))
      ۹-ببینید تابع type یه تابع ویرچوآل هستش ینی چی ؟ یعنی فرض کنید مثلا شما یه اشاره گر به QGraphicsItem دارین که یه آیتمی داخلش هست دیگه به هر حال. مثلا فرض کنید که شما خودتون امدید و یه کلاس دایره و یه کلاس مستطیل ساختین. خب حالا اشاره گر به QGraphicsItem دارین. از کجا بدونین که دایره است یا مستطیل؟ اگه برای هر کلاسی تابع type رو باز نویسی کرده باشین و حالا تابع type را صدا بزنین میره و مثلا اگه QGraphicsItem * شما واقعا یه دایره باشه تابع type عضو کلاس دایره رو صدا میزنه و شما با یه If ساده میتونید تشخیص بدین که این آیتم دایره است. تفاوت این کست با کست معمولی روهم نمیدونم . فهمیدم بهتون میگم فهمیدید به مام بگید 🙂
      ۱۰- خوب جای خوشحالی داره که حد اقل یه نفر این مباحث رو جدی دنبال میکنه. وبلاگ چند وقتیه از منظر کاربران سوت و کورس
      ۱۱-

      The scene’s bounding rect is set by calling setSceneRect(). Items can be placed at any position on the scene, and the size of the scene is by default unlimited. The scene rect is used only for internal bookkeeping, maintaining the scene’s item index. If the scene rect is unset, QGraphicsScene will use the bounding area of all items, as returned by itemsBoundingRect(), as the scene rect. However, itemsBoundingRect() is a relatively time consuming function, as it operates by collecting positional information for every item on the scene. Because of this, you should always set the scene rect when operating on large scenes.

      شما میتونید هر اندازه ای که دوست دارین بدین. طبق توضیحات اسیستنت ! این sceneRect کار خاصی نمیکنه. ولی بهتره به دلایلی ( افزایش علمکرد ) حتما ست بشه.
      ۱۲-:)
      ۱۳-:)
      ۱۴-نه اتفاقا سوالات شما باعث بهتر جاافتادن مطلب هم برای بنده هم برای بقیه است. در مورد منو حق با شماست. اگه قراره برنامه استاندارد بنویسیم بهتره که منو و البته اکشن هاش عضو کلاس تعریف بشن تا این اتفاق نیفته. توی QA هم دلیل خاصی نداره چون من همیشه عادت دارم متغیر هامو مقدار دهی اولیه کنم B-)
      15-آفرین. دقیقا . این کار رو نکردم 😐 ؟! خدا میفرماید الصوم لی 😐
      ۱۶-:))
      ۱۷- باور کنید یکی از شادی های معلم سر یه کلاس سوالات دانش آموزان است. 🙂 استاد و دانشجوی . درس دهنده و درس گیرنده و.. هم همینطور
      ۱۸-چقد تلاش کردید که شماره های نظراتتون اشتباه نشه :)))
      ۱۹-
      ۲۰-شما نباشی اصن وبلاگ کسی رو نداره. بپرس آقا بپرس

جوابی بنویسید

ایمیل شما نشر نخواهد شد.خانه های ضروری نشانه گذاری شده است. *

*


5 + شش =