2012-03-01 12 views
7

मैंने एक फ़ंक्शन लिखा है जो मेरे ग्राफिक्ससेन पर एक भरे हुए काले सर्कल को आकर्षित करना होगा। फ़ंक्शन एक काला रेखांकित सर्कल खींचता है लेकिन भर नहीं जाता है?एक भरे हुए सर्कल को खींचें

void World::damage(int x, int y) 
{ 
    QPainter painter(&worldImage); 
    painter.setBrush(QBrush(Qt::black)); 
    painter.drawArc(x,y,150,50,0,16*360); 
    item = new QGraphicsPixmapItem(QPixmap::fromImage(worldImage)); 
    this->addItem(item); 

} 

तरह सादर,

उत्तर

10

drawArc(), रंग भरना उपयोग नहीं करता है एक चक्र पूरा भर जाता है कि के लिए drawEllipse() का उपयोग करें: यह मेरा कार्य है।

+0

नमस्ते, क्या यह विजेट प्रत्येक बार व्यूपोर्ट में आने पर रीडाव नहीं करेगा, या उपयोगकर्ता विजेट के किसी अन्य भाग को संपादित करता है? क्या वह महंगा नहीं होगा? क्या इसे एक बार और सभी के लिए आकर्षित करने का कोई तरीका नहीं है? – SexyBeast

+0

क्यूटी पेंट सिस्टम जितना संभव हो सके अनावश्यक पुनर्भुगतान को कम करने के लिए पेंट घटनाओं को निकाल दिया जाता है और ज्यादातर मामलों में पर्याप्त होने पर ऑप्टिमाइज़ करने का प्रयास करता है। यदि एक पेंट ऑपरेशन जटिल होता है या अक्सर बार-बार चित्रित किया जाता है, तो ऑप्टिमाइज़ेशन को पेश किया जा सकता है जैसा कि आप पिक्समैप पर पेंटिंग और इसे कैशिंग करके उल्लेख करते हैं। –

4

drawEllipse() अकेले फ्लॉप मेरी समस्या

बस मैंने पहले drawEllipse()

painter.setBrush(Qt::red);

जोड़ा गया है और सही काम करता है को हल किया।

संबंधित मुद्दे