Я пишу плагин QML extension и ищу способ доступа к размеру элемента, который я только что реализовал.
Прямо сейчас новый элемент (с именем CustomElement
) можно создать с любым размером, который желает пользователь, определив его значения width и height , поэтому в файле 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:
// ...
};
В конструкторе плагина я установил для QGraphicsItem::ItemHasNoContents
значение false:
CustomElement::CustomElement(QDeclarativeItem* parent)
: QDeclarativeItem(parent)
{
qDebug() << "CustomElement::CustomElement parent is:" << parent;
setFlag(QGraphicsItem::ItemHasNoContents, false);
}
После добавления отладки я заметил, что parent
равен 0
, что объясняет, почему я не могу получить полезную информацию с помощью boundingRect()
и других методов. Видимо, проблема в том, что у моего плагина нет родителя. Как мне решить эту проблему?