初探 Qt Opengl【2】
最近在研究QOPengl QGraphicsView QGraphicsItemQGraphicsScene不过也只是皮毛,也不是做什么技术贴,就是记录一下自己在其中遇到的问题,和自己新学到的东西。
有兴趣的可以交流
目前主要就是利用QGraphicsView 的分层显示,scene的可以容纳数以万计的item
我的理解scene是一个可以存各种item的容器
View就是将这个容器中的内容让用户可见
在绘制任意图形的时候,我遇到了QpainterPath类
其中QPainterPath中有一个参数是需要QPolygonF类
具体代码如下:
QPainterPathpath;
QPolygonFpolygon;
polygon<<QPointF(10,20)<<QPointF(30,20)<<QPointF(20,0)<<QPointF(10,20);
path.addPolygon(polygon);
QGraphicsItem*item_My=scene->addPath(path,QPen(QColor(0,255,0),3,Qt::SolidLine,Qt::FlatCap,Qt::MiterJoin),QBrush(QColor(0,255,0)));
item_My->setFlag(QGraphicsItem::ItemIsSelectable,true);
item_My->setFlag(QGraphicsItem::ItemIsMovable,true);
item_My->moveBy(x,y);
其中,item_My->setFlag(QGraphicsItem::ItemIsSelectable,true);
item_My->setFlag(QGraphicsItem::ItemIsMovable,true);
这两行代码是比较重要的,QGraphicsItem默认是将鼠标事件关闭的,
这两行代码使Item可以拖拽,可是选择。
在QGraphicsView的最底层,添加了继承QGLwidget类的opengl绘制函数
出现问题是QGraphicsView无法时时刷新界面
对饮解决办法就是
调用QGraphicsView的Viewport的update函数
如果使用Opengl的update函数是不可以的
目前就这么多了
下面是拍的几张图
练习源代码:http://download.csdn.net/detail/z609932088/9110865
初探 Qt Opengl【2】的更多相关文章
- 初探Qt Opengl【1】
最近一直在学习Qt的opengl绘图,看到好多资源都是关于以前的旧版本的, 我将我这几天学的的部分关于opengl的做个总结,也希望对需要学习的人有一定的帮助 在我的学习中,我主要用到一下三个方法 # ...
- Qt OpenGL三维绘图
简介 OpenGL是为三维绘图提供的标准应用编程接口. OpenGL处理的仅仅是三维绘图方面,而很少或是根本不提供图形用户界面编程方面的支持.OpenGL*应用程序的用户界面必须由其它工具包创建,比 ...
- ubuntu下配置qt+opengl+opencv
原地址:http://www.cnblogs.com/aleny-liu/archive/2011/12/16/aleny-Qtnote1.html http://blog.csdn.net/jdh9 ...
- QT OpenGL中文教程在QT4版本后的错误代码更改(一)
由于教程中说的已经够可以了,这里就不对代码进行分析了,有兴趣可以自己去看看.这个教程来源于原来的NeHeOpenGL中文教程 (http://www.yakergong.net/nehe/) ,但其有 ...
- Qt OpenGL 鼠标拾取实现
在之前的文章中讲到了OpenGL鼠标拾取操作的例子,工作中需要在Qt中实现,下面的程序演示了QT中opengl的拾取例子. 本例子在Qt5.12和Qt Creator4.8.0上测试,使用的是QOpe ...
- QT OpenGL绘制三维图形(立方体、圆柱体、圆锥、球体、圆环等等)
本文使用QGLWidget来绘制各种三维基本图形,包括立方体.圆柱体.圆锥.球体.圆环等等,涉及包括基本绘制以及上色.纹理.旋转等操作. 使用的软件版本:QT5.12 + QT Creater4.8. ...
- 第10课 初探 Qt 中的消息处理
1. Qt消息模型 (1)Qt封装了具体操作系统的消息机制 (2)Qt遵循经典的GUI消息驱动事件模型 2. 信号与槽 (1)Qt中定义了与系统消息相关的概念 ①信号(Signal):由操作系统产生的 ...
- 交叉编译Mesa,X11lib,Qt opengl
记录Mesa配置文件如下: Mesa版本:Mesa-10.2.3 CC=/usr/local/arm-4.8.1/bin/arm-none-linux-gnueabi-gcc CXX=/usr/loc ...
- 45.Qt openGL实现三维绘图
main.cpp #include <QApplication> #include <iostream> #include "tetraheadron.h" ...
随机推荐
- 【luogu P1004 方格取数】 题解
题目链接:https://www.luogu.org/problemnew/show/P1004 标准的DP,不明白为什么有普及+提高的难度 四维DP[i][j][k][l] 表示第一遍走到i,j格子 ...
- jquery 发送短信60后重新获取
先需要form表单,获取短信的按钮做成两个相同的,一个显示,一个隐藏. <div class="item"> <p clas ...
- c#分析SQL语句
最近总结了c#一般的功能,然后自己在博文中写了很多东西.主要是在用途上面.能够解决一些问题.现在分各个组件和方向写完了.主要的内容写了demo,也写了自己的项目组件和模型. 最后一个SQL分析.其实在 ...
- #leetcode刷题之路9- 回文数
判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1:输入: 121输出: true 示例 2:输入: -121输出: false解释: 从左向右读, 为 ...
- 【TOJ 3005】Triangle(判断点是否在三角形内+卡精度)
描述 Given the coordinates of the vertices of a triangle,And a point. You just need to judge whether t ...
- MySQL备份恢复之mydumper
Preface In my previous two blogs,we have known about the tool of backing up MySQL db.I'm gon ...
- Centos6 Ruby 1.8.7升级至Ruby 2.3.1的方法
本文章地址:https://www.cnblogs.com/erbiao/p/9117018.html#现在的版本 [root@hd4 /]# ruby --version ruby (-- patc ...
- MongoDB学习(1)--安装,基本curd操作
知识点: 1-MongoDB 安装,启动和卸载 2-基本概念 3-基本的增删改查操作(CURD) 来回顾总结一把学习的mongodb,如果有javascript基础,学习"芒果DB" ...
- Static关键字,遇到的问题_1
一.问题 父类代码: ...
- hive的load命令
Hive Load语句不会在加载数据的时候做任何转换工作,而是纯粹的把数据文件复制/移动到Hive表对应的地址. 语法 LOAD DATA [LOCAL] INPATH 'filepath' [OVE ...