草庐IT

QGraphicsview

全部标签

c++ - 删除鼠标滚轮 QGraphicsview 上的滚动功能

我的小部件上有一个QGraphicsView窗口,并且刚刚为放大图像的鼠标滚轮设置了一个事件。但是,一旦我放大,就会显示滚动条,并且鼠标滚轮上的滚动功能会覆盖我的缩放功能。我想知道是否有任何方法可以一起删除滚动并添加拖动以移动选项,或者CTRL和鼠标滚轮可以缩放,仅鼠标滚轮可以控制滚动这是我的缩放功能(我知道它并不完美)但如果有人能阐明它,那将是一个奖励提前加油voidTest::wheelEvent(QWheelEvent*event){if(event->delta()>0){ui->graphicsView->scale(2,2);}else{ui->graphicsView->

c++ - 程序化 QGraphicsView 滚动未正确更新

我有一个派生自QGraphicsView的自定义类,它实现了一个插槽调用scrollHorizo​​ntal(intdx),里面的代码很简单voidCustomView::scrollHorizontal(intdx){scrollContentsBy(dx,0);}我的问题是,像这样滚动有效但没有正确更新场景,而是重复在View边缘发现的任何像素,而不是重新调用项目的paint()方法。之后我尝试调用update(),但没有任何反应。我尝试通过拖动启用滚动,更新工作正常!但我需要以编程方式完成它,因为我有滚动条隐藏的东西,比如horizo​​ntalScrollBar()->setV

c++ - Qt - 没有滚动条的 QGraphicsView

我正在尝试使用QGraphicsScene在全View中显示图片。但是当我将QgraphicsScene放在QGraphicsView中时,我会得到一个滚动条。我尝试了很多方法但都去了静脉。那么谁能告诉我如何在没有滚动条的情况下获得完整View。 最佳答案 您可能会看到滚动条,因为场景大于图形View中的可用区域。默认情况下,QGraphicsView带有1像素的边距。要解决此问题,您可以尝试:QRectrcontent=graphicsView.contentsRect();graphicsView.setSceneRect(0,

《QT从基础到进阶·十五》用鼠标绘制矩形(QGraphicsView、QPainter、QGraphicsRectItem)

以下是鼠标绘制矩形最全的一种用法,完整源码将会放在最后面。QT版本:5.15.2VS版本:20191、在界面加载一张图片界面的搭建选用QGraphicsView,自定义类GraphicsView继承QGraphicsView,在主程序中点击按钮打开图片,相关代码如下:voidtestString::on_button_clicked(){QStringfileName=QFileDialog::getOpenFileName(this,"open",QStandardPaths::writableLocation(QStandardPaths::PicturesLocation),"image

qt QGraphicsView 绘制多种图形

入门先看一个简单的例子#include"mainwindow.h"#include"ui_mainwindow.h"#include#includeMainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui->setupUi(this);init();}MainWindow::~MainWindow(){deleteui;}voidMainWindow::init(){QGraphicsScene*pScene=newQGraphicsScene();pScene->addText("H

【Qt图形视图框架】自定义QGraphicsItem和QGraphicsView,实现鼠标(移动、缩放)及键盘事件、右键事件

自定义QGraphicsItem和QGraphicsView说明示例`myitem.h``myitem.cpp``myview.h``myview.cpp`调用`main.cpp`效果说明在使用Qt的图形视图框架实现功能时,一般会在其基础上进行自定义功能实现。如:滚轮对场景的缩放,鼠标拖动场景中的项,以及可以在场景中进行右键操作等。示例myitem为自定义QGraphicsItem,实现了边框、重绘事件、鼠标悬停、按键、右键菜单等功能。myitem.h#ifndefMYITEM_H#defineMYITEM_H#includeclassMyItem:publicQGraphicsItem{pu

QGraphicsView图形视图框架使用(五)渲染优化

文章目录调整图元二叉树绘制缓存视图优化OpenGL渲染优化当视图中的复杂图元比较多的时候,图形框架应用的性能会下降很多。这时候,我们就需要对默认的渲染策略进行调整从而提升用户体验。图形视图框架的优化方向主要分为以下几种:1.调整图元的二叉树结构2.对图元的绘制函数进行缓存3.优化视图渲染4.采用OpenGL进行渲染下面分别介绍一下几种优化策略调整图元二叉树在图元视图框架内部,各个Item的位置采用二叉树数据结构来进行存储。这种数据结构的优势是是查询比较快,也就是通过items()或者itemAt()来定位查找图元的时候会比较快,这对于图元的碰撞检测也是很有帮助的。但是这种数据结构也有问题,就是

QGraphicsView 显示图片

QGraphicsView显示图片QGraphicsView是PyQt6里负责显示图形的组件,搭配QGraphicsScene和QtGui.QPixmap()就可以显示图片,这篇教学会介绍如何在PyQt6窗口里加入QGraphicsView组件并显示图片。快速预览:QGraphicsView显示图片改变图片尺寸设定图片位置显示多张图片QGraphicsView显示图片建立PyQt6窗口物件后,透过QtWidgets.QGraphicsView(widget)方法,就能在指定的组件中建立显示图形组件,QGraphicsView建立后,需再使用QtWidgets.QGraphicsScene()建

python - MousePressEvent,QGraphicsView中的位置偏移

我在使用QGraphicsView和QGraphicsScene时遇到了一些困难。当我在场景中缩放/取消缩放并使用mousePressEvent创建项目时,我在该位置有一个偏移量。如何避免这种情况?event.pos()似乎是问题所在..fromPyQt4importQtCore,QtGuiclassgraphicsItem(QtGui.QGraphicsItem):def__init__(self):super(graphicsItem,self).__init__()self.rectF=QtCore.QRectF(0,0,10,10)defboundingRect(self):r

QT QGraphicsView 在鼠标点击处进行放大缩小

一、前段时间在用QGraphicsView对图元进行放大缩小时,发现图形总是越来越跑偏,无法像地图中那样,点击哪里就能放大哪个地方。如下所示:此时放大缩小的焦点并不在鼠标位置方法,使用QGraphicsView类的设置属性函数.在构造函数中增加下面两个函数即可。ui.View_ImageOpro->setTransformationAnchor(QGraphicsView::AnchorUnderMouse);ui.View_ImageOpro->setResizeAnchor(QGraphicsView::AnchorUnderMouse);此时以鼠标为中心的效果就出来了:完整代码:MyGr