2010-08-18 16 views
5

मैं QGraphicsScene का उपयोग करके अपने पूर्ण दृश्य में एक तस्वीर दिखाने की कोशिश कर रहा हूं। लेकिन जब कभी मैंने QGraphicsVene के अंदर QGraphicsScene डाल दिया, तो मुझे स्क्रॉल बार मिल रहा है। मैंने कई तरीकों की कोशिश की लेकिन सभी नसों में चले गए। तो क्या कोई मुझे बता सकता है कि स्क्रॉलबार के बिना पूर्ण दृश्य कैसे प्राप्त करें।क्यूटी - QGraphicsView बिना स्क्रॉलबार

उत्तर

5
QGraphicsView v; 
v.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 
v.setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 

प्रोग्राम के रूप में स्क्रॉल एक बार इन छिपे हुए हैं, v.ensureVisible() के भार के किसी एक का उपयोग समायोजित करने के लिए।

8

आपको स्क्रॉलबार मिल रहे हैं क्योंकि दृश्य ग्राफिक्स व्यू के भीतर उपयोग करने योग्य क्षेत्र से बड़ा है। डिफ़ॉल्ट रूप से, एक QGraphicsView 1-पिक्सेल मार्जिन के साथ आता है। इसे ठीक करने के लिए, आप की कोशिश कर सकते हैं:

QRect rcontent = graphicsView.contentsRect(); 
graphicsView.setSceneRect(0, 0, rcontent.width(), rcontent.height()); 

मैं स्क्रॉलबार मिल रहा था क्योंकि मैं मैन्युअल रूप से ग्राफिक्स आइटम मैं जोड़ने था के आकार के दृश्य रेक्ट की स्थापना की गई थी - जो QGraphicsView विजेट के रूप में के रूप में बड़ी थी। मैं मार्जिन को ध्यान में नहीं रख रहा था।

+0

क्या 1-पिक्सेल मार्जिन को अक्षम करने का कोई तरीका है? आपका कोड मेरे लिए समस्या को हल करता है, लेकिन यह अभी भी खराब डिफ़ॉल्ट के स्पष्ट फिक्स की तरह दिखता है। – Trilarion

+1

नहीं; यह मार्जिन 'fitInView' के भीतर हार्ड-कोड किया गया है (QTBUG-11945 देखें)। इससे छुटकारा पाने का एकमात्र तरीका है अपना खुद का 'फिटइन व्यू' लिखें। एक एपीआई के माध्यम से मार्जिन का पर्दाफाश करने के लिए कुछ चर्चा हुई है, लेकिन अभी तक इसे किसी भी क्यूटी रिलीज में नहीं बनाया गया है। – AndrewS

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