获取元素是否集中在函数 QGraphicsItem::shape() 中的优雅方法
在图形化 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 Code:
QPainterPath QGraphicsItem::shape() const
以适当的方式 方法中的重点信息? 我想声明一个全局变量,但我不喜欢这个想法。 谢谢
In a graphical qt application,
i can learn if my object that inherits from QGraphicsItem is focused in paint method:
Qt Code:
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
}
}
but i must click it and the shape must change whether it is focused or not.
how can i get if focused information in
Qt Code:
QPainterPath QGraphicsItem::shape() const
method in an appropriate way?
I think to declare a global variable but i do not like this idea.
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 QGraphicsItem::hasFocus() :
顺便说一句,如果您希望在聚焦项目时形状发生变化,则需要重写 focusInEvent() 和 focusOutEvent() 并记住在形状变化之前调用prepareGeometryChange()。
Use QGraphicsItem::hasFocus() :
Incidentally, if you want the shape to change when you focus the item, you will need to override focusInEvent() and focusOutEvent() and remember to call prepareGeometryChange() before the shape changes.