2017-08-21 14 views
6

मुझे चिकनी झुकाव रेखा को QPainterPath ऑब्जेक्ट के साथ क्यूटी में अधिक पिक्सल किए बिना एक उचित तरीका नहीं मिल सकता है।एक झुका हुआ रेखा

नोट मुझे पता है कि यह भावना paintEvent समारोह में पथ आकर्षित करने के लिए नहीं है, मैं इसे वहाँ सादगी की खातिर डाल दिया। मैं सीधे केंद्रीय विजेट में रेखा खींचने की कोशिश कर रहा हूं। यहाँ

void MyObject::paintEvent(QPaintEvent *) 
{ 
    QPainterPath aPath; 
    aPath.moveTo(40.0, 60.0); //random values to try 
    aPath.lineTo(254, 354.0); 

    QPainter painter(this); 
    painter.setPen(QPen(QColor(20, 20, 200), 10, Qt::SolidLine)); 
    painter.drawPath(aPath); 
} 

और परिणाम मैं मिलता है:

इसके बाद मेरी कोड का एक टुकड़ा है

enter image description here

यह भयानक है! केवल सुंदर लाइनों मैं आकर्षित कर सकते हैं क्षैतिज, ऊर्ध्वाधर या 45 डिग्री झुका होते हैं ...

उत्तर

4

आप देख रहे हैं गुणवत्ता ड्राइंग के लिए, क्यूटी प्रलेखन इसकी प्रस्तुत करना गुणवत्ता झंडे के उपयोग की एक illustrative example (5.X version) प्रदान करता है। आमतौर पर, आप flags specified here (5.X version) का उपयोग कर सकते हैं और QPainter::setRenderHint() (5.X version) समारोह का उपयोग कर उन्हें निर्धारित किया है। देखें कि क्या आप उन विधियों का उपयोग करके वांछित गुणवत्ता प्राप्त करने में सक्षम हैं। आपके कोड के लिए, आप

QPainter painter(this); 
painter.setRenderHint(QPainter::SmoothPixmapTransform, true); 
painter.setRenderHint(QPainter::HighQualityAntialiasing, true); 
painter.setPen(QPen(QColor(20, 20, 200), 10, Qt::SolidLine)); 
painter.drawPath(aPath); 
+0

जैसे कुछ ढूंढ रहे होंगे, तो आप सीधे प्रश्न में प्रासंगिक भागों को बेहतर तरीके से शामिल करेंगे। लिंक किसी भी समय – user463035818

+0

को तोड़ सकता है मैंने एक उदाहरण के रूप में कुछ विशिष्ट कोड जोड़ा है, लेकिन पहली पार्टी क्यूटी दस्तावेज बहुत अधिक विस्तार से जाता है, क्योंकि मैं उचित रूप से – csunday95

+0

लिख सकता हूं QPainter :: Antialiasing संकेत ने चाल की है। धन्यवाद, परिणाम अब ठीक वैसे ही दिखता है जैसा मैं चाहता था। – Getter

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