Я пишу QML расширение плагин и я ищу способ получить доступ к размеру элемента, который я только что реализовал.
Сейчас новый элемент (названный CustomElement
) может быть создан с любым размером по желанию пользователя путем определения значений width и height, так что в QML-файле пользователь может сделать следующее:
CustomElement
{
id: my_elem
width: 800
height: 600
}
Но я хотел бы иметь возможность получать информацию о размере, когда пользователь настраивает размер через якорь
, например так:
Rectangle
{
width: 800
height: 600
CustomElement
{
id: my_elem
anchors.fill: parent
}
}
Я понятия не имею, как получить доступ к информации якоря
.
Класс плагина определяется так:
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()
и других методов. Видимо, проблема в том, что у моего плагина нет родителя. Как мне решить эту проблему?