问题标签 [qgraphicsview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QGraphicsScene::changed() 总是返回一个大小为应用程序窗口的矩形
在 Qt 4.7.1 Windows 应用程序中,连接到 QGraphicsScene::changed() 的插槽按预期触发,但脏区计数始终为 1,并且我得到的矩形大小始终与我的应用程序窗口相同。我尝试调用 QGraphicsView::setViewportUpdateMode(QGraphicsView::MinimalViewportUpdate); 但这没有帮助。
有没有办法告诉 Qt 只给我改变页面的区域?
qt - QGraphicsView右键鼠标按下事件问题
我有一个从 QGraphicsView 类重新实现的 View 类。
当用右键单击鼠标时,我试图画一条线。
这是我的 mousePressEvent、mouseReleaseEvent 和 mouseMoveEvent 代码:
p>但是这段代码不能正常工作。它不能正确捕获鼠标释放事件和鼠标移动事件。如果我设置 if(event->button() == Qt::LeftButton ) 那么它按预期工作。
我也尝试使用 Qt::MidButton 并且它有效。
RightButton 有什么问题?
c++ - QGraphicsView 是否对其关联的图形场景拥有所有权?
我想知道...如果我分配一个图形场景
并将其与图形视图相关联
图形视图是否拥有场景的所有权?换句话说,图形视图是在其析构函数中删除场景还是我应该自己删除场景?
performance - QGraphicsScene/QGraphicsView 性能
我在我的项目中使用 QGraphicsScene/QGraphicsView 对,这对有性能问题。我将我的自定义图形项添加到场景中,并用视图显示内容。之后,我的自定义图形项绘制方法被场景连续调用(就像无限循环一样)。这使得 %25 的 CPU 使用率(场景中大约 400 个项目)。什么可能导致这种行为?
这是我的一个项目实现:
我从 xml 文件中读取 x 和 y 坐标。对于这个项目,x 和 y 坐标分别为 239,344
c++ - 忽略qgraphicsview中svg图像透明部分的鼠标事件?
我正在处理包含大量 svg 图像的图形视图(使用 C++ 和 Qt)。我拦截了对它们的点击,但是当鼠标悬停在 svg 项目的透明部分上时,我不想接收事件(或能够忽略它们)。
是否可以 ?
svg 文件是否应该专门为这种用途而设计?
是否有一些我(尚未)听说过的隐藏 Qt 选项?
c++ - 获取 QGraphicsView 的大小
我想知道某一个的大小QGraphicsView
。它的大小不是固定的,因为小部件是网格布局的一部分。我尝试使用this->ui->myGraphicsView->width()
它的高度等效,但这些值不准确。
如何获得 a 的当前大小QGraphicsView
?
c++ - 为什么我在 Qt 中实现交互式 QGraphicsView 时无法更改鼠标光标?
我需要在我的应用程序中显示包含图像的 MDI 窗口。我希望能够使用鼠标右键拖动滚动图像,使用鼠标滚轮缩放它们,并在它们上面创建多边形感兴趣的区域蒙版。为此,我创建了一个自定义的 QGraphicsView 派生类 (ImageView),它重新实现了一些鼠标事件。我还有一个 QGraphicsPixmapItem 派生类 (ImageItem) 用于实现悬停事件,该事件更新应用程序界面中的光标像素位置指示器。这是大纲(尚未实现遮罩多边形):
我的第一个问题是,在我在视图中激活 startAoi() 之前一切正常(连接到用户按下的 GUI 中的按钮)。在此之前,平移工作正常,鼠标光标变为张开的手。激活 AOI 模式后,光标在图像上方变为十字形,按住并拖动右键可平移视图,但不会更改光标,就好像图像项的光标优先于视图的光标一样。在我停用 AOI 模式后,十字光标消失,不再触发悬停事件,但这一次当平移仍然有效时,我在拖动时被普通箭头光标卡住了。
编辑:基本上,对于 QGraphicsItem,unsetCursor() 本身并没有删除光标,而是将其更改为标准箭头,它是持久的并覆盖父视图的光标。
另一个问题是我不确定我是否正确布置了整个鼠标处理。例如,我不知道是否应该处理视图、场景或图像项的鼠标事件覆盖的平移和缩放。我想,因为它们对于整个视图(将来将包含其他对象)是全局的,所以它应该属于顶部项目 - 视图。此外,我不确定何时应该对事件调用 accept() 和 ignore(),这实际上是做什么的,以及何时应该调用父类的鼠标事件实现。任何见解将不胜感激。
c++ - 如何在 QImage 中显示此数据缓冲区
我有一张我想在 QImage 中显示的图像。
这是填充 rows*cols 图像的代码片段:
如您所见,我的数据缓冲区是“行高”并且是“列*3 宽”
rgbMapped 是一个 unsigned char** 数组。所以回到我的 QT 代码中,我有以下内容:
ImagePixMapItem 是我创建的一个 QGraphicsPixmapItem,它允许我拦截一些鼠标事件,但我不会对任何绘图函数或任何东西做任何事情。
当我运行这段代码时,我返回的图像看起来像我的图像,除了有三个副本,一个是绿色的,一个看起来是黄色的,一个是明显的紫色。
如果这三组数据相互重叠,似乎可能是正确的图像?
qt - 使用 QGrahicsRectItem 拖动大于项目本身的矩形
我对 a QGrahicsRectItem
in a有问题QGraphicsScene
。我想要的是能够用鼠标移动项目。但问题是,在我的情况下,拖动矩形比项目本身大。
这是我使用的代码:
所以当我运行我的程序时,我有这个窗口,我可以拖动项目。一切似乎都很好。
但如果我仔细观察,拖动区域比项目本身大。(见下图蓝色矩形) 蓝色矩形表示如果我在这个矩形中移动鼠标,光标会改变,我可以拖动该项目。
我感觉问题与“fitInView(scene()->sceneRect());”有关 线。如果我删除它,那么它可以工作。例如,如果我添加一个“比例(5,1)”,就会出现同样的问题。
你知道问题可能是什么吗?
events - pyqt graphicsitem 鼠标进入事件
我正在尝试连接到放置在 QGraphicsScene 上并通过 QGraphicsView 可视化的 QGraphicsItems 的鼠标输入事件。据我了解,为此覆盖的方法是从 QGraphicsItem (或其子类之一)派生的类中的 dragEnterEvent 。我的尝试如下所示:
我希望上面的片段能清楚地说明我想要做什么。请注意,显示完全按照我的意愿生成,没有问题 - 但是绘制的多边形没有响应输入事件 - 我没有看到任何证据表明正在调用 dragEnterEvent()。