找回密码
 立即注册
收起左侧
楼主: yafeilinux

第19篇 2D绘图(九)图形视图框架(上)

121
回复
90502
查看
  [复制链接]
累计签到:1564 天
连续签到:1 天
2016-5-3 16:21:26 显示全部楼层
dyb_qt 发表于 2016-4-30 19:33
@yafeilinux 请问老师,用这个可以实现环形菜单么,并让它自动旋转。。。。

什么样的环形菜单?
回复 支持 反对

使用道具 举报

累计签到:27 天
连续签到:1 天
2016-7-15 14:57:13 显示全部楼层
老师,请问这是什么问题?
错误:cannot allocate an object of abstract type 'RectItem'
回复 支持 反对

使用道具 举报

累计签到:27 天
连续签到:1 天
2016-7-15 15:35:13 显示全部楼层
柚子爱蜂蜜 发表于 2016-7-15 14:57
老师,请问这是什么问题?
错误:cannot allocate an object of abstract type 'RectItem'

已经找到问题了,  QRectF boundingRect() 少了const  太粗心了。。。
回复 支持 反对

使用道具 举报

累计签到:580 天
连续签到:3 天
2016-8-26 09:47:48 显示全部楼层
系统:Win7 64bit
Qt版本:5.5
Qt Creator 3.4.2

第一个基本应用:
         工程文件graphicsView.pro  添加 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
         main.cpp中头文件包含修改为
         #include <QApplication>
         #include <QGraphicsRectItem>
        #include <QGraphicsScene>
        #include <QGraphicsView>

第二个:自定义图形项
        myitem.h 头文件包含改为:#include <QGraphicsItem>
        myitem.cpp 头文件包含增加 #include <QPainter>
参与人数 2人气 +3 收起 理由
mgp1995 + 2 对我帮助很大!
狂舞曲 + 1 对我帮助很大!

查看全部评分总评分 : 人气 +3

回复 支持 反对

使用道具 举报

累计签到:580 天
连续签到:3 天
2016-8-26 13:42:07 显示全部楼层
本帖最后由 hebbely 于 2016-8-26 15:02 编辑

系统:Win7 64bit
Qt版本:5.5
Qt Creator 3.4.2
第三个,光标和提示:
         myitem.cpp 头文件包含添加 #include <QCursor>

第四个,拖放
        myitem.cpp 头文件包含添加
                         #include <QGraphicsSceneMouseEvent>
                         #include <QApplication>
                         #include <QDrag>
                        #include <QMimeData>
                        #include <QWidget>
            另外:MyItem::mouseReleaseEvent函数添加 Q_UNUSED(event);
            RectItem::paint 函数添加  Q_UNUSED(option); Q_UNUSED(widget);
            RectItem::dropEvent函数中
                           color =qVariantValue<QColor>(event->mimeData()->colorData())
                           更改为:
                           color =(event->mimeData()->colorData()).value<QColor>();  
            而main.cpp文件中添加头文件 #include <QTime>





回复 支持 反对

使用道具 举报

累计签到:580 天
连续签到:3 天
2016-8-26 16:50:02 显示全部楼层
(五)碰撞检测检测中,为什么鼠标移动矩形时,直线也会动?
回复 支持 反对

使用道具 举报

累计签到:580 天
连续签到:3 天
2016-8-28 10:08:20 显示全部楼层
当按下该右键菜单时,图形项并没有移动到(0,0)点,这是什么原因
有人有遇到过么?
回复 支持 反对

使用道具 举报

累计签到:13 天
连续签到:1 天
2016-10-3 16:41:51 显示全部楼层
QT5.7,
在QRectF boundingRect() const ;处 出现错误non-member function cannot have cv-qualifier,查询到出现错误的原因是“
If there was no const qualifier on these methods, then the compiler wouldn't allow one to call them on a const instance of the object ,去掉const就可以了。
回复 支持 反对

使用道具 举报

累计签到:13 天
连续签到:1 天
2016-10-4 16:55:45 显示全部楼层
QT5.7
graphicsView02

在graphicsView02.pro中添加 QT += gui
在myitem.cpp中添加#include <QMenu>和#include <QAction>
回复 支持 反对

使用道具 举报

累计签到:1 天
连续签到:1 天
2016-11-8 15:09:02 显示全部楼层
cctry_songchao 发表于 2013-7-26 21:50
解决了,原因是我在新建MyItem类的时候我选择基类为QGraphicsItem,但是没有这个类,我自己写的,然后操作
...

请问什么叫在代码中继承这个类啊,我也有同样的问题
回复 支持 反对

使用道具 举报

累计签到:4 天
连续签到:1 天
2016-12-15 15:00:46 显示全部楼层
yafeilinux 发表于 2015-2-12 15:18
看下QGraphicsObject类的帮助文档:
The QGraphicsObject class provides a base class for all graphics ...

+1同样的问题,已解决,一起进步
回复 支持 反对

使用道具 举报

累计签到:2 天
连续签到:1 天
2016-12-21 16:45:27 显示全部楼层
亚飞老师,我有个疑问,void MyItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) 这个函数里 new出来的 drag 和 mime,都没有显示使用delete也没有父窗口,难道不会内存泄漏吗,还是说在什么地方会自动回收这部分内存?
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2016-12-24 16:55:04 显示全部楼层
qqjmk15263 发表于 2016-12-21 16:45
亚飞老师,我有个疑问,void MyItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) 这个函数里 new出 ...

  QDrag *drag = new QDrag(event->widget()); //为event所在窗口部件新建拖动对象
   QMimeData *mime = new QMimeData; //新建QMimeData对象,它用来存储拖动的数据
   drag->setMimeData(mime); //关联

这里不是有父部件吗?
回复 支持 反对

使用道具 举报

累计签到:30 天
连续签到:1 天
2017-1-20 20:07:25 显示全部楼层
老师我按照你的教程来的 版本是QT5.7 qt creator4.2.0 为什么有这么多错误啊 请问怎么解决  C:\Users\Z\Desktop\新建文件夹 C:\Users\Z\Desktop\新建文件夹
回复 支持 反对

使用道具 举报

累计签到:30 天
连续签到:1 天
2017-1-20 20:08:11 显示全部楼层
C:\Users\Z\Desktop\新建文件夹\QQ图片20170120200423.png
回复 支持 反对

使用道具 举报

累计签到:30 天
连续签到:1 天
2017-1-20 20:10:44 显示全部楼层
老师这是我遇到的问题 版本是QT5.7 QT Creator4.2   请问怎么解决啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2017-1-20 22:58:41 显示全部楼层
Z_bin 发表于 2017-1-20 20:10
老师这是我遇到的问题 版本是QT5.7 QT Creator4.2   请问怎么解决啊

这个教程是基于Qt 4的,你用Qt 5会有问题啊,建议到下载页面,下载Qt Creator快速入门第3版的源码看看。
回复 支持 反对

使用道具 举报

尚未签到

2017-2-17 11:09:10 显示全部楼层
qt5 添加类应该是qobject
回复 支持 反对

使用道具 举报

累计签到:39 天
连续签到:1 天
2017-4-25 17:44:05 显示全部楼层
QT5的建议把color =qVariantValue<QColor>(event->mimeData()->colorData());
改成color=qvariant_cast<QColor>(event->mimeData()->colorData());
回复 支持 反对

使用道具 举报

累计签到:1564 天
连续签到:1 天
2017-4-26 10:45:56 显示全部楼层
张校长 发表于 2017-4-25 17:44
QT5的建议把color =qVariantValue(event->mimeData()->colorData());
改成color=qvariant_cast(event->mime ...

嗯。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了