在图形qt应用程序中, 我可以了解继承自QGraphicsItem的对象是否专注于绘制方法:
Qt代码:
void MyQGraphicsItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *)
{
if (option->state & QStyle::State_HasFocus) {
//if focus some shape
} else {
//if no focus another shape
}
}
但我必须点击它,无论是否聚焦,形状都必须改变。 如果有重点信息,我怎么才能得到
Qt代码:
QPainterPath QGraphicsItem::shape() const
方法以适当的方式? 我想要声明一个全局变量,但我不喜欢这个想法。 谢谢
答案 0 :(得分:1)
如果此项目处于活动状态且它或其焦点代理具有,则返回true 键盘输入焦点;否则,返回false。
顺便说一句,如果您希望在聚焦项目时更改形状,则需要覆盖focusInEvent()和focusOutEvent()并记住在形状更改之前调用prepareGeometryChange()。