ฉันกำลังเขียนปลั๊กอิน ส่วนขยาย QML และฉันกำลังมองหา วิธีเข้าถึงขนาดขององค์ประกอบที่ฉันเพิ่งใช้งาน
ขณะนี้ คุณสามารถสร้างองค์ประกอบใหม่ (ชื่อ CustomElement
) ด้วยขนาดใดก็ได้ที่ผู้ใช้ต้องการโดยการกำหนดค่า ความกว้าง และ ความสูง ดังนั้นในไฟล์ QML ผู้ใช้สามารถทำได้ : :
CustomElement
{
id: my_elem
width: 800
height: 600
}
แต่ ฉันต้องการดึงข้อมูลขนาดได้เมื่อผู้ใช้กำหนดค่าขนาดผ่าน anchor
เช่นนี้:
Rectangle
{
width: 800
height: 600
CustomElement
{
id: my_elem
anchors.fill: parent
}
}
ฉันไม่รู้ว่าจะเข้าถึงข้อมูล anchors
ได้อย่างไร
คลาสปลั๊กอินถูกกำหนดเป็น:
class CustomElement: public QDeclarativeItem
{
Q_OBJECT
//Q_PROPERTY() stuff
public:
// ...
};
ใน Constructor ของปลั๊กอิน ฉันตั้งค่า QGraphicsItem::ItemHasNoContents
เป็น false:
CustomElement::CustomElement(QDeclarativeItem* parent)
: QDeclarativeItem(parent)
{
qDebug() << "CustomElement::CustomElement parent is:" << parent;
setFlag(QGraphicsItem::ItemHasNoContents, false);
}
หลังจากเพิ่มการดีบัก ฉันสังเกตเห็นว่า parent
คือ 0
ซึ่งอธิบายว่าทำไมฉันจึงไม่สามารถเรียกข้อมูลที่เป็นประโยชน์ด้วย boundingRect()
และวิธีการอื่นๆ ได้ เห็นได้ชัดว่าปัญหาคือปลั๊กอินของฉันไม่มีพาเรนต์ ฉันจะแก้ไขปัญหานี้ได้อย่างไร?