QGraphicsView::scale 放大后QGraphicsScene上的item就全部消失了? [问题点数:20分,结帖人wyjblue]

Bbs1
本版专家分:0
结帖率 69.23%
Bbs1
本版专家分:0
Bbs1
本版专家分:0
QGraphicsView 的使用(滚轮缩放)
1. 继承QGraphicsView;class MyGraphicsView : public QGraphicsView2. 重写构造函数MyGraphicsView(QGraphicsScene *scene, QWidget *parent = 0);3.设置 scene 尺寸scene->setSceneRect(0, 0, 1280, 720);4. 重写paintEvent 函...
QGraphicsItem刷新问题解决方法
调用Widget的各种重绘方法都无效 解决办法 设置定时器重复调用 //QGraphicsScene *scene=new QGraphicsScene(this); //QGraphicsView *view=new QGraphicsView(scene,this); view->fitInView(scene->sceneRect(),Qt::KeepAspectRati...
QGraphicsView放大和缩小下鼠标位置使用鼠标滚轮
c++ qt <em>qgraphicsview</em> 我有一个在屏幕中间的QGraphicsView窗口的应用程序。我想能够<em>放大</em>和车轮滚动。 目前,我有重新的QGraphicsView和重写的滚动函数,让是doesnt滚动图像(像它在默认情况下)。 void MyQGraphicsView::wheelEvent(QWheelEvent *event) { if(event->delta() > 0)
Qt工作笔记-QGraphics框架场景中图元的移除与析构
1.场景里面使用removeItem函数,这个函数官方给出如下解释 注意这个词remove只是移除,并不是delete掉,所以只是场景中(显示出来的图元)没有了,空间还是存在。   举个代码例子: void MyGraphicsView::mouseReleaseEvent(QMouseEvent *event) { setCursor(Qt::ArrowCursor); ...
交互式 QGraphicsView(平移/缩放/旋转)
Graphics View提供了一个平台,用于大量自定义 2D 图元的管理与交互,框架包括一个事件传播架构,支持场景 Scene 中的图元 Item 进行精确的双精度交互功能。Item 可以处理键盘事件、鼠标按下、移动、释放和双击事件,同时也能跟踪鼠标移动。和 Google 地图一样,在管理大量 Item 的时候,通常需要 View 具有交互(平移/缩放/旋转)功能。
qt开发(二): graphic view放大导致text失真的完美解决办法
text变形其实本质是painter被加上<em>scale</em>之后,text也随之改变,解决办法是把这个<em>scale</em>找出来,让他只作用于坐标而不作用于text本身。 void Line::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){ pai
QGraphicsView大于QGraphicsScene时出现滚动条时,改变scene的显示位置
开发环境Qt5.6  Windows10 当在使用QGraphicsView时,我创建了一个QGraphicsView大小为 800 * 600 ,但我创建了一个QGraphicsScene大小为800 * 1000时,view自动出现了滚动条。 效果图如下: 默认的滚动条位置在大概中间的位置。很尴尬,我想要让它显示与最上面的位置。 在网上查找解决方案,发现并不能用_photo_v
用鼠标滚轮放大和缩小QGraphicsView中的图元
如下所示。//函数 void ItemsView::wheelEvent(QWheelEvent *e) { int angle = e-&amp;gt;angleDelta().y(); if(angle &amp;gt; 0){ zoom_2(); }else{ zoom_1(); } } //函数 void ItemsView::zoom_1...
在QGraphicsScene中限制图元的拖动范围
欲使QGraphicsItem可拖动,则需设置标志位:setFlag(ItemIsMovable,true);而如果想限制QGraphicsItem对象的移动范围,需要继承QGraphicsItem类,重载<em>item</em>Change()虚函数,关于该函数的重载,QT文档中示例如下:QVariant Component::<em>item</em>Change(GraphicsItemChange change, const
Qt中的QGraphicsScene中,删除部分图元
删除部分图元。在指定的矩形范围内的图元的删除。首先得到符合这个条件的图元指针列表。把这些图元移除,然后使用delete删除,释放内存。如下所示void CenterWidget::cmd_test_slot(void) { //获得指定矩形区域内的元素的指针列表 QList&amp;lt;QGraphicsItem *&amp;gt; <em>item</em>_list_p = view-&amp;gt;scene-&amp;g...
转:QGraphicsView 的刷新(update)问题
众所周知,QGraphicsView的绘图操作主要是在paintEvent(相对于VC里的 OnDraw函数)函数里完成, 如果要手动重绘一般调用update或repaint,(这两个函数都会调用paintEvent完成重绘工作) 看官方帮助文档建议用update因为update相对做了很多优化工作,而repaint则没有。 但是在实际使用时发现,直接使用update或update都不能完成
实现qt QGraphicsView放大缩小功能的类
实现qt QGraphicsView<em>放大</em>缩小功能的类,不用继承QGraphicsView,只需要在该类中设置要实现<em>放大</em>缩小的QGraphicsView对象即可。
QGraphicsScene Item 绘制图元
QGraphicsScene QGraphicsItem 绘制直线,折线,多边形,矩形,圆形,闭合曲线以及文字,双击进行编辑,右键结束当前操作, Qt5.6
Qt :QGraphicsScene管理QGraphicsItem(单击/选择/移动/缩放/删除)
本文转载大神作者:一去丶二三里 博客地址:http://blog.csdn.net/liang19890820. 简述 在图形视图框架中,QGraphicsScene 提供一个快速的接口,用于管理大量 <em>item</em>,QGraphicsItem 是场景中 <em>item</em> 的基类。 图形视图提供了一些典型形状的标准 <em>item</em>,当然,我们也可以自定义 <em>item</em>。除此之外,QGraphicsItem 还支持以...
QGraphicsItem 选中和焦点问题
void ComponetCommonSlot::mousePressEvent(QGraphicsSceneMouseEvent *event) { Q_UNUSED(event) setCursor(QCursor(Qt::ClosedHandCursor)); setSelected(true); } void ComponetCommonSlot::
QGraphicsView的事件传递
问题描述:软件中用到
QGraphicsScene 管理 QGraphicsItem(单击/选择/移动/缩放/删除)
在图形视图框架中,QGraphicsScene 提供一个快速的接口,用于管理大量 <em>item</em>,QGraphicsItem 是场景中 <em>item</em> 的基类。图形视图提供了一些典型形状的标准 <em>item</em>,当然,我们也可以自定义 <em>item</em>。除此之外,QGraphicsItem 还支持以下特性: 鼠标按下、移动、释放和双击事件,以及鼠标悬浮事件、滚轮事件和上下文菜单事件 键盘输入焦点和键盘事件 拖放
QGraphicsView 更改鼠标样式 以及QGraphicsItem悬停时更改鼠标样式
一个编辑区域,用QGraphi参数View写的,可以<em>放大</em>,鼠标按下后可以拖拽查看,这个时候希望鼠标可以是"小手"抓取的样子.QGraphicsView上有一些个QGraphicsItem,希望鼠标悬停在<em>item</em>上时可以变成四向箭头,然后可以拉伸<em>item</em>. 所以重新了QGraphicsView的 void mousePressEvent(QMouseEvent *event); void mo
QGraphicsView框架容易忽视的坐标问题-“画布”QgraphicsScene到底放在了哪儿?
QGraphicsView框架容易忽视的坐标问题-“画布”QgraphicsScene到底放在了哪儿?
QGraphicsView 中不能刷新的解决方案
在QGraphicsView的事件中,不论使用 update,repaint,抑或updateScence,resetCacheContent, 均不可以刷新界面,对此有两个解决方案: (1)调用 viewport 的update函数 (2)调用场景的update(),才能重绘
QT实现Mat转QImage并把场景(QGraphicsScene)的Item渲染到图片
//从当前场景获取所有Item   QList&amp;lt;QGraphicsItem *&amp;gt; <em>item</em>List = m_pScene-&amp;gt;<em>item</em>s();   //1. 从读取图片   Mat matRGB = imread(&quot;/home/mark/Desktop/opencv.bmp&quot;);   QImage qImage(matRGB.data, matRGB.cols, matRGB.r...
QGraphicsView的缩放和拖动,以及缩放围绕鼠标所在点进行缩放
因为要实现一个功能是,拖动view所在的窗口,可以显示scene中所有的信息,在网上找了很多资料,都是在缩放后通过scrollView进行拖动的,但是这个拖动是有问题的,只是拖动对应的scrollView中的数据,这不是我要进行拖动可以看到出来viewport中的数据,还包括很多无法显示的scene的其他部分 代码如下: .h #ifndef MAINWINDOW_H #define MAINWI...
Qt中QGraphicsView三种坐标系统详解
在QGraphicsView中支持三种不同的坐标系统---视口坐标、场景坐标、项坐标 场景坐标就是系统窗口(QGraphicsScene)的坐标,它(0,0)作为它的左上角坐标. 视口坐标相当于场景坐标的数学变换,如当一个窗口坐标为(0,0)至(100,100)那么这个窗口就是实实在在的由100*100个像素组成,此时把坐标变换为(-50,50)(即场景坐标(0,0))至(50,-50)(即场
QGraphicsView系统坐标映射关系
如果你英文足够好,可以参考Qt帮助文档中的:The Graphics View Coordinate System。 --------------------------------------------------------------------------------------------------------------------------- 首先,先上显示界面图(Embe
QGraphicsItem删除选中的图元
删除图元,首先要选中它们。首先要设置它们为可选状态。下面是例子。void CenterWidget::cmd_test_slot(void) { //测试:选择图元 //获得所有元素的指针列表 QList&amp;lt;QGraphicsItem *&amp;gt; <em>item</em>_list_p = view-&amp;gt;scene-&amp;gt;<em>item</em>s(); //选择所有图元 fo...
qt中Graphic中 View的坐标和Scene的坐标不匹配的问题
在QT中使用QGraphicView 和QGraphicsSce  时,会遇到一个这样一个问题:Scene中绘制图的坐标与View显示坐标不符。 例如:直接在scene中添加直线,并且设置起点是0,0。但是我们会发现他的起点并不是0,0。如下图   scene.addLine(test.set_x(0),test.set_y(0),test.set_x(50),test.set_y...
为什么使用QGraphicsView::scale, 当scale的参数小于1时我的QGraphicsScene上的item全部消失了?
当<em>scale</em>的参数大于1时可以正确<em>放大</em>,但是<em>scale</em>的参数小于1时我的QGraphicsScene上的<em>item</em>就<em>全部</em><em>消失</em>了?rn求指教rnrn部分代码如下:rnrn[code=C/C++]rn#include "i<em>item</em>s.h"rn#include rn#include "Link.h"rn#include "Node.h"rn#include "propertiesdialog.h"rn#include rnrnextern float Xmax,Ymax;rnextern int VisZoom;rnextern float iData[6376][3];rnextern float xx,yy;rnrniItems::iItems()rnrn QSplitter *MainSplitter = new QSplitter(Qt::Horizontal);rn QSplitter * WidgetRight = new QSplitter(Qt::Vertical);rn QWidget *SubWidget1 = new QWidget;rn QWidget *SubWidget2 = new QWidget;rnrn //QWidget *area= new QWidget;rn view = new QGraphicsView;rnrn spinBox1 = new QSpinBox;rn QSlider *slider1 = new QSlider(Qt::Horizontal);rn spinBox1->setRange(1, 9);rn spinBox1->setValue(1);rn SpinBoxValue1=spinBox1->value();rn VisZoom=10;rn slider1->setRange(1, 9);rnrn QObject::connect(spinBox1, SIGNAL(valueChanged(int)),rn slider1, SLOT(setValue(int)));rn QObject::connect(slider1, SIGNAL(valueChanged(int)),rn spinBox1, SLOT(setValue(int)));rn QObject::connect(spinBox1, SIGNAL(valueChanged(int)),rn this, SLOT(setVisZoom()));rnrn QHBoxLayout *layout1 = new QHBoxLayout;rn layout1->addWidget(spinBox1);rn layout1->addWidget(slider1);rn SubWidget1->setLayout(layout1);rnrn QSpinBox *spinBox2 = new QSpinBox;rn QSlider *slider2 = new QSlider(Qt::Horizontal);rn spinBox2->setRange(0, 130);rn spinBox2->setValue(25);rn slider2->setRange(0, 130);rn QObject::connect(spinBox2, SIGNAL(valueChanged(int)),rn slider2, SLOT(setValue(int)));rn QObject::connect(slider2, SIGNAL(valueChanged(int)),rn spinBox2, SLOT(setValue(int)));rnrn QHBoxLayout *layout2 = new QHBoxLayout;rn layout2->addWidget(spinBox2);rn layout2->addWidget(slider2);rn SubWidget2->setLayout(layout2);rnrn WidgetRight->addWidget(SubWidget1);rn WidgetRight->addWidget(SubWidget2);rnrn MainSplitter->addWidget(view);rn MainSplitter->addWidget(WidgetRight);rnrn view->setDragMode(QGraphicsView::RubberBandDrag);// 选择多个节点方式:1.按ctrl;2.设置橡皮筋方式rn view->setRenderHints(QPainter::Antialiasingrn | QPainter::TextAntialiasing);rn view->setContextMenuPolicy(Qt::ActionsContextMenu);// 右键菜单rn setCentralWidget(MainSplitter);rnrn scene = new QGraphicsScene(0, 0, Xmax*VisZoom, Ymax*VisZoom);// 创建场景,起始点为(0,0), 宽600,高500rn view->setScene(scene);// 显示场景rn view->setStyleSheet("background-color:gray");rnrn minZ = 0;rn maxZ = 0;rn seqNumber = 0;rn createActions();rn createMenus();rn createToolBars();rn connect(scene, SIGNAL(selectionChanged()),rn this, SLOT(updateActions()));rn setWindowTitle(tr("Diagram"));rn updateActions();rnrnrnrn// 增加一个节点rnvoid iItems::addNode1()rnrn Node *node = new Node;rn node->setText(tr("Node %1").arg(seqNumber + 1));rn setupNode1(node);rnrnrnvoid iItems::setupNode1(Node *node)rnrn node->setPos(QPoint(80 + (100 * (seqNumber % 5)),rnrn 80 + (50 * ((seqNumber / 5) % 7))));rn scene->addItem(node);rn ++seqNumber;rn scene->clearSelection();rn node->setSelected(true);rn bringToFront();rnrnrnvoid iItems::bringToFront()rnrn ++maxZ;rn setZValue(maxZ);rnrnvoid iItems::sendToBack()rnrn --minZ;rn setZValue(minZ);rnrnvoid iItems::setZValue(int z)rnrn Node *node = selectedNode();rn if (node)rn node->setZValue(z);rnrnrnNode *iItems::selectedNode() constrnrn QList <em>item</em>s = scene->selectedItems();rn if (<em>item</em>s.count() == 1) rn return dynamic_cast(<em>item</em>s.first());rn else rn return 0;rn rnrnrnvoid iItems::addLink()rnrn NodePair nodes = selectedNodePair();rn if (nodes == NodePair())rn return;rn Link *link = new Link(nodes.first, nodes.second);rn scene->addItem(link);rnrn[/code]
Qt QGraphics背景颜色取反例子
Qt 背景取反的一个例子,使用QGraphics模式,自定义<em>item</em>的颜色和scene背景颜色取反,版本QTcreator 5.4.1
QT小程序:利用QGraphicsScene和QGraphicsView进行显示操作
#include #include #include #include #include #include int main(int argc, char *argv[]) {     QApplication a(argc, argv);     QGraphicsPixmapItem*  myPix = new QGraphicsPixma
QGraphicsView旋转(横屏竖屏)
试图完成一个可横屏竖屏切换的界面,考虑到横屏之后文字也需要转过来,所以使用QGraphicsView将widget加入QGraphicsScene中,旋转QGraphicsView使整个界面旋转。 代码: main.cpp #include &amp;quot;Widget.h&amp;quot; #include &amp;amp;lt;QApplication&amp;amp;gt; #include &amp;amp;lt;QGraphicsScene&amp;amp;gt; #inclu...
QGraphicsView 框架学习(二),组合与撤销组合
QGraphicsItemGroup 是Qt二维图形框架提供的对图元进行组合操作的类。它提供了了void addToGroup(QGraphicsItem * <em>item</em>) 和 void removeFromGroup(QGraphicsItem *);两个方法。实际使用中可以通过 scene的createItemGroup()方法来创建组合对象,通过destroyItemGroup方法撤销组合。看
Qt的Graphics-View框架和OpenGL结合详解
这是一篇纯技术文,介绍了这一个月来我抽时间研究的成果。 Qt中有一个非常炫的例子:Boxes,它展示了Qt能够让其Graphics – View框架和Qt的OpenGL模块结合起来,渲染出非常出色的效果。其实我私自认为凭这个程序,已经有很多游戏开发者关注Qt了,因为游戏开发一个非常常见的模块就是UI,一般情况下游戏引擎提供的UI模块比较弱,基本上都是游戏引擎 + 第三方GUI库进行结合的。但是Qt以其Graphics – View框架能够非常轻松地将UI控件嵌入场景中,而且能够和OpenGL底层共存,更重
QGraphicsView 框架学习(三),图形对象的剪贴板操作。
图形编辑必备功能,剪贴板。 Qt本身提供 QClipboard 对象,它使用也很方便,有轮子就不用自己造轮子,不说废话,我们需要利用QMimeData对象来存储我们的图形元素,所以我们要声明一个QMimeData的派生类。
在QGraphicsScene上画矩形
CustomSense继承QGraphicsScene,QGraphicsView,重写了鼠标事件,在CustomSense上添加图片并画矩形标记出特定区域,是专门满足这个需求写的小测试例子,使用Qt5实现。
QWidget体系与QGraphicsWidget体系之间的区别
      在NOKIA reserch center做过的两个Qt项目,每个项目分别都做了三个版本,一个是QWidget体系版本,一个是QGraphicsWidget体系版本,一个则是Orbit版本。       首先解释下三者之间的关系:      ①:QWidget体系是我们平时最常用的Qt体系,亦即其中所有使用的窗口类都是QWidget或其派生类!      ②:QGraphi
QGraphicsView 中实现拖拽
开始想使用QGraphicsView结合QGraphicsScene和QGraphicsItem,做个绘制各种图形的编辑器,想使用拖拽实现快捷方式,没想到还有点波折。 已在QGraphicsVews中设置了setAcceptDrops(true); 在运行时发现:当把
【转载】关于graphicsview背景透明的问题
#include int main(int argc, char *argv[]){QApplication app(argc, argv);QMainWindow window;QGraphicsScene* scene = new QGraphicsScene(&window);QGraphicsItem* <em>item</em> = scene->addText("QGraphicsTextItem");
QGraphicsView如何添加 和改变图片大小!
1 创建工程 Scale,基类为QWidget ,使用布局器
QGraphicsItem 如何导出为png或者svg图
两种方式 假设有 QGraphicsItem <em>item</em>;方式一  QPixmap pix(<em>item</em>-&amp;gt;boundingRect().width(),<em>item</em>-&amp;gt;boundingRect().height());        QPainter painter;         pix.fill(Qt::transparent);//用透明色填充        painter.begin...
Qt基础——获取QGraphicsScene的缩略图即导出到图片
http://blog.csdn.net/lcl_data/article/details/8731892?utm_source=tuicool
QGraphicsScene 绘制刻度图
Qt5.6+MSVC,QGraphicsScene QGraphicsView 绘制刻度图
Qt工作笔记-QGraphicsView框架容易忽视的坐标问题-“画布”QgraphicsScene到底放在了哪儿?
转载地址:https://blog.csdn.net/tianyuan521521/article/details/46290525前言最近一直使用QGraphicsView框架在我的一个实际项目中,官方文档好多都没说清楚啊,有木有?!文档都翻光了,却还是有好多没明白。 一个令我恼火的bug就是,明明log打出来的每个Item的坐标都是预期的,但为什么最后结果不对呢? 我在视图中添加了一个直线项(...
QGraphicsView 实现动画实验
在做桌面雪花飘落效果的动画时, 想用QGraphicsView来实现动画, 这里做了个实验. 本实验是在scene里添加100个<em>item</em>, 实现简单的斜线运动, 碰到边缘后反弹的效果. 主要是测试其消耗资源情况. 实验结果: 高CPU运行! 下面是代码主要代码: 窗口构造函数, 主要是布局, 创建QGraphicsView和QGraphicsScene对象, 添加100个<em>item</em>s
Qt工作笔记-视图(QGraphicsView)的放大和缩小(通过滚轮)
程序运行截图如下:   关键的函数:   逻辑:通过滚轮事件,识别滚轮<em>放大</em>上移还是下移动,调用这个函数 源码如下: mygraphicsview.h #ifndef MYGRAPHICSVIEW_H #define MYGRAPHICSVIEW_H #include &amp;lt;QObject&amp;gt; #include &amp;lt;QGraphicsView&amp;gt; QT_BEG...
QT画矩形Graphics, Scene,Item逻辑关系使用
QT 图形视图(Graphics View)提供了一个平台, 框架包括一个事件传播架构,支持场景(Scene)中的图元(Item),通过画矩形框,系统了解 显示 场景 图元 paint 重载等
QGraphicsScene入门一:基本介绍、场景定义、添加元素
简介说明:    这个QGraphicsScene类用于在场景中操作大量的2D图形元素,这个类是作为一个容器QGraphicsItems存在的,它是连同QGraphicsView用于可视化的二维表面的图形项目,如直线,矩形,文本,甚至定制物品;还可以有效地确定元素在场景中的位置以及控制元素的时显示区域及方式。配合QGraphicsView你可以可视化整个场景、或方大缩小或只显示一部分等...   ...
关于QGraphicsView里使用QGraphicsScene背景图片平铺的问题
在QGraphicsView里默认显示QGraphicsScene的时候是平铺的,如果图片尺寸过小就会平铺,如果大于QGraphicsView的尺寸,就会自动填充。 后来试了试,找到了解决方法,分享一下: 1.QGraphicsView设置一下显示位置 ui->graphicsView->setAlignment(Qt::AlignLeft | Qt::AlignTop);//这里是左上角方
QGraphics绘制图形总结
最近学习了下QGraphics系列,主要包括三个类: QGraphicsItem QGraphicsView 和 QGraphicsScene. 有关这3者的介绍请参阅Qt Assistant.下面对本人在使用过程中遇到的一些问题进行总结和回顾.         [1 ] QgraphicsView是可以设置成透明的.使用时,设置其styleSheet为透明如可         QString
Qt浅谈之十八:GraphicsView框架事件处理
一、简介        简介 二、运行图 (1)如下图1所示。 三、详解 1、开始 (1)开始 四、总结 (1)本博文只发布部分源码,读者可根据思路来进行定制。 (2)在不同的系统下可能还会有乱码出现,可修改程序实现,主要当初没考虑到国际化支持。 (3)源码已经打包上传到csdn上可登录下载(http://download.csdn.net/deta
QGraphicsView移动图元/场景以及坐标转换
使用Qt来画图的时候,需要了解一下QGraphicsView(视图)、QGraphicsScene(场景)、QGraphicsItem(图元),已经他们之间的关系。 通过把各种 图元(基类都是:QGraphicsItem)组合在一起搭建成场景(QGraphicsScene),把搭建好的场景通过视图展示出来(QGraphicsView)。 通过一个示例来展示,选中图元的时候可以移动图元,选中空白的时...
Qt之QGraphicsScene、QGraphicsView 实现窗口透明情况下的点击事件
在用Qt做窗口透明处理时是接收不到鼠标事件的,想要在窗口透明的情况下去接收鼠标消息还需要依靠QGraphicsScene与QGraphicsView,当然Linux与windows还是有点区别的,具体看代码
QGraphicsScene保存为图片
QImage image(mysize,QImage::Format_RGB32);          QPainter painter(&image);          myscene->render(&painter);   //关键函数          image.save(mypath/myimagefile.png);
QGraphicsScene的碰撞检测
实现效果如下 图1 移动的Item碰撞显示 图2 碰撞的Item都显示使用Scene的碰撞检测函数QList< QGraphicsItem *> collidingItems(const QGraphicsItem *<em>item</em>, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape) const文档解释Returns a list of
QT:用 QGraphicsItem 自定义一个 箭头
声明 class CLineItem : public QObject,public QGraphicsItem { Q_OBJECT Q_INTERFACES(QGraphicsItem) public: explicit CLineItem(QObject *parent = 0); ~CLineItem(void); virtual QRectF ...
关于QtGraphics编程的几点经验总结_qgraphicsscene
QtGraphics主要由三部分组成,分别是View,Scene, Item。
Qt工作笔记-第三种方法在QGraphics上写文本
前面的两种方法: QGraphicsSimpleTextIte和QGraphicsTextItem 如下: https://blog.csdn.net/qq78442761/article/details/81740672   下面说的是继承法,重写 painter,然后drawText 运行截图如下:   源码如下: mygraphics<em>item</em>.h #ifndef ...
Qt学习之路(32): 一个简易画板的实现(Graphics View)
Qt学习之路(32): 一个简易画板的实现(Graphics View) 2009-12-15 23:42:46 标签:C++ 教程 学习 QT教程 Qt 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://devbean.blog.51cto.com/448512/244181 这一次将介绍如何使用Gr
QT之 scene graph 的局部刷新尝试(一)
使用QT做HMI开发,因为GPU或者CPU的资源有限,为了得到更流畅的交互效果,局部刷新的方法是大家都一直寻找的解决方案,限制部分的刷新帧率,把资源更多的留给实时性要求高的。 Qt5以后的版本,都推荐使用GPU去渲染,提高渲染的效果,即使用scene graph这个机制去渲染。 使用Qt的Scene Graph来开发应用,要点是批量渲染。这是由OpenGL的特性决定的,因为通过OpenGL,
QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果
http://blog.csdn.net/ghostyu/article/details/7017112
QGraphicsItem 如何使用信号/槽
对于 QGraphicsItem 来说,信号/槽和属性机制不是它的一部分,因为它不继承自 QObject。这是一个出于性能考虑的设计决策,允许比较大的场景以及快速的交互。特殊情况下,如果真的需要使用信号/槽,可以使用 QObject 的信号/槽和属性机制来扩展 QGraphicsItem。
QGraphicsView 实现图片裁剪功能
本教程实现了图片显示、滚轮<em>放大</em>缩小图片、鼠标中键移动图片、画框裁剪图片功能。 界面程序 from PyQt5.QtCore import QSize, Qt, QRect from PyQt5.QtGui import QColor from PyQt5.QtWidgets import QApplication, QDialog, QGridLayout, QPushButton, QSp...
qt 旋转子窗口 基于QGraphicsView 实现
感谢 Qt 示例里边的 Box 示例~~~~ 上图! 不要被吓哭哦! X轴旋转 XY轴一起旋转 XYZ轴一起旋转 YZ轴一起旋转 Y轴旋转 XZ轴一起旋转 Z轴旋转 GIF的图有点略多 大家谅解谅解~~~ 上代码!!! http:
解决QWidget父对象加入QGraphicsView内导致当前对象接收不到鼠标移动事件问题
只需要在父对象内安装过滤器并在接收到鼠标按压事件后返回TRUE即可!!!!好大一个坑,调试了一周没搞定,整个人都快崩溃了。
QGraphicsViewDemo
QGraphicsScene继承自QObject,是一个管理图元的容器,与QGraphicsView合用可以在2D屏幕上显示如线、三角形、文本、自定义图元等图元。
QGraphicsView框架事件处理
QGraphicsView框架事件处理 2016-10-28 16:02:13 标签: QT [+] 一、简介        GraphicsView支持事件传播体系结构,可以使图元在场景scene中得到提高了已被的精确交互能力。图形视图框架中的事件都是首先由视图进行接收,然后传递给场景,再由场景给相应的图形项。        对于键盘鼠标事件,scen
QGraphicsItem 鼠标点击事件编程方法
功能需求,在QGraphicsView中显示一张图像,如下图,鼠标点击图片时返回图片坐标系内的像素坐标,但是点击边上空白部分时不返回坐标。 实现思路是子类化QGraphicsView,QGraphicsScene, QGraphicsPixmapItem,并重写鼠标点击事件函数mousePressEvent(QGraphicsSceneMouseEvent* event)。光标默认的样式是手型
【转】 qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果
转自:http://blog.csdn.net/ghostyu/article/details/7017112 应大家的要求,还是把完整的工程文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看运行效果,我用的群创7寸屏,主机是mini2440,分辨率是800*480,程序写比较粗糙,但对初学者还是有一点
QT 类及其实现效果(8)--橡皮筋线,Graphics view
一、选择图形的某个区域,绘制一个类似蚂蚁线的选区。使用类QRubberBand  if (!rubberBand)      rubberBand = new QRubberBand(QRubberBand::Rectangle, this);     rubberBand->setGeometry(QRect(origin, QSize()));     rubberBand->show
关于使用DirectX在QGraphicsView上播放视频的探索
最近注意到有人遇到了一个我半年前遇到的问题,我将半年前自己的探索写出来供大家参考,希望对大家有帮助,如果有错误的地方希望不吝指教。如果解决了问题,请告诉我。 大约半年前遇到了此问题,使用DirectX在QGraphicsView上播放视频。 由于当时项目比较急,一直没有解决。后来就换了QMdiarea代替了QGraphicsView框架,实现了directx通过窗口句柄(即WInId)播放视频
QGraphicsScene管理QGraphicsItem(单击/选择/移动/缩放/删除)
来源:http://blog.csdn.net/liang19890820/article/details/53504323 简述 在图形视图框架中,QGraphicsScene 提供一个快速的接口,用于管理大量 <em>item</em>,QGraphicsItem 是场景中 <em>item</em> 的基类。 图形视图提供了一些典型形状的标准 <em>item</em>,当然,我们也可以自定义 <em>item</em>。除此之
QGraphicsView改变光标的样式
QGraphicsView中Item上默认的光标形状是一个手型,用于拖拽。但是下某些应用场景下,我们想要让光标变成其他的形状,比如十字形等。以下是一些解决方案: QGraphicsView 更改鼠标样式 以及QGraphicsItem悬停时更改鼠标样式 Changing the cursor in a QGraphicsView 上述方面主要就是子类化QGraphicsView,然后viewp
一个QGraphicsItem 坐标变换的问题
大家好,最近需要用Qt Graphicsview 框架写一个做图工具,需要实现通过鼠标创建线、矩形、圆、多边形等几何图形,并完成一些基本的几何变换,如,移动,改变大小,旋转,组合等操作。QGraphicsView 、QGraphicsScene、QGraphicsItem本身支持几何图形的移动、旋转等操作,但是没有提供改变大小的接口。        用QAbstractGraphicsShape
QGraphicsView 框架学习(一)、图形元素的编辑
一、给图形对象加控制点,用户通过鼠标来操作控制点来编辑图形,参考MFC drawcli的实现。 很多人通过QGraphicsItem的派生类,然后重载几个函数来处理鼠标消息: void mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent) Q_DECL_OVERRIDE; void mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent) Q_DECL_OVERRIDE; void
Qt中QGraphicsView使图像自适应窗口大小
fd=QFileDialog(self) filePath=fd.getOpenFileName()[0]#获取图片路径 self.<em>item</em>=QGraphicsPixmapItem(QPixmap(filePath)) self.scene=QGraphicsScene() self.scene.addItem(self.<em>item</em>) self.graphicsView.setScene(...
Qt下给QGraphicsScene绘制网格背景方法
直接上代码: QPolygonF myPolygon1; myPolygon1 << QPointF(0,10) << QPointF(20,10); QPolygonF myPolygon2; myPolygon2 << QPointF(10,0) << QPointF(10,20); QPixmap pixmap(20, 20); pixmap.
qgraphicsView设置背景透明,控件不透明
mView.setAttribute(Qt::WA_TranslucentBackground,true); QPalette myPalette; QColor myColor(100,100,100); myColor.setAlphaF(0.2); myPalette.setBrush(mView.backgroundRole(),myColor); mView.setPale
Qt QGraphicsItem尺寸调整,缩放
QT GraphicsView框架的应用,对自定义RectItem通过控制点AgentItem调整尺寸,Item成组,解组的具体用法,给学习Qt组态软件编写提供很大帮助。 程序需要Qt4.7.4支持,Vs2008环境。
交互式QGraphicsView(平移/缩放/旋转)
简述 Graphics View提供了一个平台,用于大量自定义 2D 图元的管理与交互,框架包括一个事件传播架构,支持场景 Scene 中的图元 Item 进行精确的双精度交互功能。Item 可以处理键盘事件、鼠标按下、移动、释放和双击事件,同时也能跟踪鼠标移动。 和 Google 地图一样,在管理大量 Item 的时候,通常需要 View 具有交互(平移/缩放/旋转)功能。
QGraphicsItem封装的直线控件(添加箭头)
最近在封装QGraphicsScene的很多控件,需要在绘制直线后,显示箭头表示方向,并且该直线的起点和终点可变化(箭头需要实时变化) qreal alph = atan2(m_pointF2.y()-m_pointF1.y(), m_pointF2.x()-m_pointF1.x()); painter-&amp;gt;translate(m_pointF2); qreal a...
决定QGraphiciItem图形项自身坐标系统零点的最关键的地方
图形视图框架 项目名称setSceneRect my<em>item</em>.h #ifndefMYITEM_H #defineMYITEM_H   #include   classMyItem:publicQGraphicsItem { public:     MyItem();     QRectFboundingRect()const;
Qt中基于QGraphicsItem类的重载鼠标事件函数的教训
原文网址http://blog.csdn.net/xj178926426/article/details/7084205
QT QGraphicsItem 消除重影 移动重影
开启: View 的 FullViewportUpdate模式 默认是: MinimalViewportUpdate setViewportUpdateMode(QGraphicsView::FullViewportUpdate); ------------------ 必备神器 tmind 最快的思维导图软件 下载地址 https://www.tmind.xyz/    ...
QGraphic view实例:利用QGraphicsItem与定时器实现动画效果:蝴蝶飞舞
运行环境为Window XP 利用QGraphicsItem与定时器实现动画效果:蝴蝶飞舞 实验内容与分析设计 利用QGraphicsItem与定时器实现动画效果:蝴蝶飞舞 实验步骤与调试过程 第一步:     Ctrl+N新建工程  其他项目---空的Qt项目   命名为butterfly 步骤二     Ctrl+N  新
关于QGraphicsView的坐标系
关于其坐标系: QList lights; QGraphicsScene *scene=new QGraphicsScene(); QGraphicsEllipseItem *light=new QGraphicsEllicsEllipseItem(100,100,90,90); lights.append(light); for(int i=0;i {      //lights.
QGraphicsItem的坐标问题
如果<em>item</em>是scene的顶层节点,那么它的坐标原点是相对于scene的,如果是子节点,它的坐标是相对其父节点的。 比如<em>item</em>Parent,<em>item</em>Child; <em>item</em>Parent.pos()坐标是相对scene的 <em>item</em>Chile.pos()坐标是以<em>item</em>Parent的坐标原点为原点绘制的,是相对于父节点<em>item</em>Parent的坐标原点的。 话说这个<em>item</em>坐标系统真是蛋疼
Qt工作笔记-ListWidget拖动(拖拽)到QGraphicsScene
程序运行截图如下:程序很简单,有个坑,如下:QGraphicsScene要经过dragMoveEvent(QGraphicsSceneDragDropEvent *event)才能触发这个dropEvent(QGraphicsSceneDragDropEvent *event)程序结构如下:源代码如下:mygraphicsscene.h#ifndef MYGRAPHICSSCENE_H #defi...
圆角内图片放大会使圆角消失的解决方案
在做一个轮播框的时候需要用到鼠标移入图片<em>放大</em>,并且还要有边框圆角的需求 一开始直接给父级overflow:hidden和圆角,子级图片transition:0.7s 。 hover后<em>scale</em>(1.05)。但是发现<em>放大</em>时圆角会<em>消失</em>,<em>放大</em>结束后圆角才会回来。 解决方法是给父级加上transform:rotate(0deg)。原因不知,算是一个偏方了。示例代码如下。 .p
关于QGraphicsView中的对象移动问题. z
转自:http://blog.chinaunix.net/uid-2384984-id-2183162.html   个人在看qwt 中的svgmap样例时,<em>放大</em>缩小的位置的源代码查到在哪里出现,但关于移动却找了一阵,不知道它的源代码在哪里出现,从跟踪情况来看,在void QwtMagnifier::widgetMouseMoveEvent( QMouseEvent *mouseEvent )中
jquery实现动画效果,放大淡化消失
&amp;lt;!DOCTYPE html&amp;gt;&amp;lt;html lang=&quot;en&quot;&amp;gt;&amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt; &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-<em>scale</em>=1.0&quot;&amp;gt; &amp;
Qt利用QGraphicsScene编写Word排版工具导出PDF
自定义Graphics图形系统 HNGraphicsItem HNGraphicsScene Word排版工具 HNWordExpress HNReport本篇的目的是编写一个工具,能够方便的对富文本、表格、图片生成Report和导出PDF,并且必须要在ARM、MIPS平台的linux嵌入式系统中方便使用。自定义Graphics图形系统Graphic系统,可以良好的完成图形的编辑工作和显示工作,但是
Qt图形框架资料07 -- Qt图形视图QGraphicsItem类
Qt图形视图QGraphicsItem类 详细介绍 QGraphicsItem类是视图框架的一部分,是在一个QGraphicsScene中最基本的图形类,它为绘制你 自己的<em>item</em>提供了一个轻量级的窗口,包括声明<em>item</em>的位置,碰撞检测,绘制重载和<em>item</em>之间的相 互作用通过事件处理 Qt提供了一系列标准的<em>item</em>s对一些常见的图像,非常的方便,有下面这些: QGraphi...
Qt浅谈之二十三QGraphicsItem旋转动画
一、简介        QGraphicsItem中水平动画使用QGraphicsItemAnimation和QTimeLine即可实现,而旋转动画须使用QTimeLine和QTransform来实现。 二、运行图 (1)绕X轴旋转        rotate()参数为Qt::XAxis (2)绕Y轴旋转              rotate()参数为Qt::YAxi
Qt Graphics入门小例以及实现场景中相关项拖拽功能总结.
源码之前了无秘密: 相关开发中碰到问题代码中已有向导性开发解说,太深入的过程暂时没有时间研究,见谅,仅当入门小例. MyWidget.h文件 #ifndef MYWIDGET_H#define MYWIDGET_H#include #include #include #include #include #include #include #include #include // pr
QGraphicsItem 的类型检测与转换
由于 QGraphicsScene 和 QGraphicsItem 的大多数便利函数(例如:<em>item</em>s(),selectedItems()、collidingItems()、childItems())返回一个 QList&lt;QGraphicsItem *&gt; 列表,在遍历列表的时候,通常需要对其中的 QGraphicsItem 进行类型判断与转换,以确定实际的 <em>item</em>。
强连通分量及缩点tarjan算法解析
强连通分量: 简言之 就是找环(每条边只走一次,两两可达) 孤立的一个点也是一个连通分量   使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)   定义: int Time, DFN[N], Low[N]; DFN[i]表示 遍历到 i 点时是第几次dfs Low[u] 表示 以u点为父节点的 子树 能连接到 [栈中] 最上端的点   int
mail.jar下载
用java发送mail用到的jar 相关下载链接:[url=//download.csdn.net/download/feifniao/221627?utm_source=bbsseo]//download.csdn.net/download/feifniao/221627?utm_source=bbsseo[/url]
毕业论文格式 大专 管理系统下载
论文格式 希望可以帮助大家可以更好的完成自己的论文顺利通过 相关下载链接:[url=//download.csdn.net/download/jiehunbamaoer/2224029?utm_source=bbsseo]//download.csdn.net/download/jiehunbamaoer/2224029?utm_source=bbsseo[/url]
数据结构前四章课件PPT下载
数据结构课件PPT数据结构课件PPT数据结构课件PPT数据结构课件PPT 相关下载链接:[url=//download.csdn.net/download/jiangjun0326/2494635?utm_source=bbsseo]//download.csdn.net/download/jiangjun0326/2494635?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 达内培训web就 个人网页制作全部视频
我们是很有底线的