PDA

View Full Version : نحوه کار کردن با QPainter



sgb110
شنبه 27 تیر 1388, 16:01 عصر
سلام
من چند تا مثال در مورد QPainter تو اینترنت دیدم ولی سر در نیاوردم
تو برنامه خوذم وقتی از این کلاس استفاده می کنم پیغام می ده که:


QPainter::begin: Widget painting can only begin as a result of a paintEvent

یعنی برا اینکه رو فرمم یه شکل بکشم حتما باید از کلاس Widget ازث ببرم و از رویداد paintEvent استفاده کنم؟

sgb110
چهارشنبه 31 تیر 1388, 12:59 عصر
سلام
برا کشیدن شکل من این کار رو کردم:


QPixmap p(20,20);

QPixmap pixmap2("pic.bmp");
QPainter painter2(&p);

painter2.drawPixmap(0,0,20,20, pixmap2);
ui->label_2->setPixmap(p);

حالا دو تا سوال داشتم:
1:برا روتیت من از این کد استفاده می کنم اما هیچ اتفاقی نمیی افته

painter2.rotate(0.5);
البته اعداد بزرگتر هم امنحان کردم
2:
انگار رو یه pixmap یه بار بیشتر نمیشه شکل کشید چون من وقتی بعد از اولین draw می خوام یه شکل دیگه بکشم اتفاقیی نمی افته؟

Nima_NF
چهارشنبه 31 تیر 1388, 18:49 عصر
برای چرخش این مورد را تست کنید:
ابتدا rotate کنید و سپس شکل را با drawPixmap رسم کنید.

ضمنا اگر در Draw این کدها را می نویسید یا با update تصویر را refresh می کنید، شئی کلاس مورد نظر مجددا تعریف می شود پس شکل جدید می تواند جایگزین شود.