คำถามการเรนเดอร์ QGraphicsView/QGraphicsScene

ฉันกำลังใช้คู่ QGraphicsScene/QGraphicsView ในแอปพลิเคชันของฉัน ฉันได้จัดประเภทย่อยไว้เพื่อจุดประสงค์ของฉัน ข้อมูลโค้ดที่สร้างคู่นี้อยู่ด้านล่าง:

itsScene = new QGraphicsScene;
itsView = new QGraphicsView;
itsView->setParent(itsCanvas);

itsView->setGeometry(20,20,1700,720);
itsView->setBackgroundBrush(Qt::black);
itsView->setAlignment(Qt::AlignTop);
itsView->setScene(itsScene);

หลังจากเพิ่มวิดเจ็ตบางส่วนลงใน QGraphicsScene สแนปช็อต UI สุดท้ายของแอปพลิเคชันของฉันอยู่ด้านล่าง: Application UI snapshot คำถามของฉันคือเหตุใดจึงมีพื้นที่ว่างเหนือรูปภาพ อะไรอาจทำให้เกิดสิ่งนี้? ฉันกำลังใช้พิกัดเชิงลบสำหรับวิดเจ็ตของฉัน มันเกี่ยวข้องกับเรื่องนั้นเหรอ?


person onurozcelik    schedule 01.07.2010    source แหล่งที่มา


คำตอบ (1)


พิกัดลบอาจเป็นสาเหตุ QGraphicsScene คำนวณขอบเขตของขอบเขตจากการรวมขอบเขตของรายการทั้งหมดในนั้น

หากคุณรู้ว่าฉากของคุณมีขอบเขตจำกัด โทร setSceneRect เพื่อแก้ไขปัญหาจนถึง เร็กคอร์ดที่รู้จัก วิธีนี้จะทำให้รายการกราฟิกที่อยู่นอกขอบเขตจะไม่ทำให้ฉากขยายเกินกว่าที่คุณต้องการ

person Stephen Chu    schedule 01.07.2010