Saya sedang menulis plugin ekstensi QML dan saya sedang mencari cara untuk mengakses ukuran elemen yang baru saja saya terapkan.
Saat ini elemen baru (bernama CustomElement
) dapat dibuat dengan ukuran apa pun yang diinginkan pengguna dengan menentukan nilai lebar dan tinggi, sehingga pada file QML pengguna dapat melakukannya :
CustomElement
{
id: my_elem
width: 800
height: 600
}
Namun Saya ingin dapat mengambil informasi ukuran ketika pengguna mengonfigurasi ukuran melalui anchor
, seperti ini:
Rectangle
{
width: 800
height: 600
CustomElement
{
id: my_elem
anchors.fill: parent
}
}
Saya tidak tahu cara mengakses informasi anchors
.
Kelas plugin didefinisikan sebagai:
class CustomElement: public QDeclarativeItem
{
Q_OBJECT
//Q_PROPERTY() stuff
public:
// ...
};
Di konstruktor plugin, saya menetapkan QGraphicsItem::ItemHasNoContents
ke false:
CustomElement::CustomElement(QDeclarativeItem* parent)
: QDeclarativeItem(parent)
{
qDebug() << "CustomElement::CustomElement parent is:" << parent;
setFlag(QGraphicsItem::ItemHasNoContents, false);
}
Setelah menambahkan debug, saya perhatikan bahwa parent
adalah 0
, yang menjelaskan mengapa saya tidak dapat mengambil informasi berguna dengan boundingRect()
dan metode lainnya. Ternyata masalahnya plugin saya tidak punya induk. Bagaimana cara mengatasi masalah ini?