您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> 移动开发 >> 在QGraphicsScene中如何识别两个不同的item

在QGraphicsScene中如何识别两个不同的item

来源:网络整理     时间:2016/8/24 16:23:56     关键词:

关于网友提出的“ 在QGraphicsScene中如何识别两个不同的item”问题疑问,本网通过在网上对“ 在QGraphicsScene中如何识别两个不同的item”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 在QGraphicsScene中如何识别两个不同的item
描述:

qtc++

我有两个继承自QGraphicsRectItem的类。名为MyItem1和MyItem2。
现在有一个MyScene继承自QGraphicsScene。
Scene中加入item1 和 item2 分别是两个类实例化的对象。
重写他的mouseMoveEvent函数 。
如何区分这两类物体,用itemAt会返回 QGraphicsItem的指针。
然后找到资料用qgraphicsitem_cast(itemAt())
转换itemAt下面的指针 编程 MyItem1的指针。
但Item1和Item2都转换成功了。
查阅资料,说要重写type()函数。
但是分别给MyItem1和MyItem2重写了type()函数以后。
转换便失败了。我的理想的结果应该是,MyItem2 转换失败,MyItem1转换成功。然后就将两类物体给区分开了。
不知道是不是用法有问题,请指教。
如果不写type()函数的话,又有点不严谨的感觉。

解决方案1:

既然你重写了,你自己定义一个类型就好了
    enum ItemType
    {
        Shape = 0,
        Line,
        Image,
    };
例如
MyItem1:type = shape;
MyItem2:type = line;
uint type() { return type; }  返回自己类型,然后就可以根据类型判断了


以上介绍了“ 在QGraphicsScene中如何识别两个不同的item”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3568479.html

相关图片

相关文章