سؤال

أنا أستخدم QPainter للحصول على بعض الرسومات على النافذة.لسوء الحظ في كل مرة paintEvent() يتم استدعاء الوظيفة، ويتم مسح النافذة بأكملها.كيف يمكنني الرسم بدون مسح؟أي.كيف أترك الأشياء من حدث الطلاء السابق دون أن تمس؟

أنا أستخدم Qt4

هل كانت مفيدة؟

المحلول

وتحتاج إلى تعيين backgroundMode باستخدام في setBackgroundMode اضع. والتعداد Qt::NoBackground هو ما كنت تبحث عنه.

نصائح أخرى

وبما أن كلا الردين مخصصان لـ Qt3 فقط، فإليك الحل لـ Qt4.تحتاج إلى الاتصال

setAttribute(Qt::WA_OpaquePaintEvent);

(على سبيل المثال في المنشئ) بعد الوثائق هنا.

في Qt3، تعيين علامة Qt::WNoAutoErase من WidgetFlags التعداد لتجنب هذا الإطار تم مسح على كل حدث الطلاء.

ويمكنك ضبط هذا العلم بتمريرها إلى QWidget منشئ .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top