qgraphicsitem 复制副本_qt-有没有办法为QGraphicsItem指定选择区域?

举例来说,您正在询问的内容将很有用,但我想我知道这是什么意思.

就个人而言,我只是创建自己的类,该类继承自QGraphicsItem(如果需要信号和插槽,则继承自QGraphicsObject).然后,此类可以提供要表示要选择的区域的整个区域的boundingRect(),但是paint()函数仅绘制条的可见部分.像这样的东西:

class Bar: public QGraphicsItem

{

Q_OBJECT

public:

Bar(int x, int y, int width, int height, int visibleBarHeight);

// returns the area of the object

QRectF boundingRect() const;

void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = 0);

};

在paint函数中,您将绘制一个矩形到可见的条形高度,但在boundingRect中,返回完整的矩形.这样,条形图可能会非常小,但是对象是完整的高度,并且会响应在条形图可见区域上方的鼠标选择.

至于文本,您可以将其作为子对象添加到该对象中,并在选择父对象时向其发出信号,或者扩展此Bar类的boundingRect并在paint函数中进行渲染.

请注意,boundingRect是对象在局部坐标中表示的区域.如果您的对象不是由矩形定义的,则还需要实现shape()函数.默认情况下,shape()调用boundingRect().

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QGraphicsItem类是Qt中用于创建图形项的基类。它提供了一些用于处理图形项的方法和属性。关于复制副本的问题,可以使用QGraphicsItem的clone()方法来创建一个图形项的副本。这个方法会返回一个新的QGraphicsItem对象,它与原始图形项具有相同的属性和状态。你可以在复制副本之后对其进行进一步的修改或操作。要注意的是,clone()方法只会复制图形项本身的属性,而不会复制与之相关联的任何其他对象或数据。因此,如果你想复制与图形项相关联的字体或格式化大小等属性,你需要在复制副本之后手动设置这些属性,例如使用setFont()方法。\[1\]\[2\] #### 引用[.reference_title] - *1* *2* [QT学习笔记6:常见的 QGraphicsItem](https://blog.csdn.net/weixin_40008339/article/details/111846452)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [如何在pyqt5中复制粘贴Qgraphicsitem?](https://blog.csdn.net/weixin_36431489/article/details/113995360)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值