问题标签 [qgraphicsitem]
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.
c++ - 缩放 QGraphicsItem 以适应 QGraphicsView
我正在尝试创建一个QGraphicsView
允许某人缩放电流QGraphicsItem
以适应QGraphicsView
窗口大小的方法。
我已经重写QGraphicsItem
以创建自定义版本,并且我实现了一些方法,因此它知道它已缩放多少(它始终与原始版本成正比,因此只有一个比例因子 - 宽度和高度相同)。
所以在scaleFactor
二传手我有以下内容:
在我的主要形式中,我在一个按钮中有以下内容:
其中item
一个在哪里ImagePixmapItem
。
这在第一次时效果很好 - 我的图像比视口大,并且它可以很好地缩小以适合窗口(至少在宽度方面)。scaleFactorX
但是,如果我再次按下按钮,item
宽度和高度的相同值会返回。
boundingRect
转换后的图像可以更改吗?如果没有,我该怎么办?
qt - QPainterPath 增长/扩展
有什么方法可以QPainterPath
扩展它,比如 Photoshop 中的选择 > 增长...(或扩展...)命令?
我想QPainterPath
取回 fromQGraphicsItem::shape
并将其用作QGraphicsPathItem
. 但我想将形状扩大给定的数量,比如周围 10 个像素。然后在这个展开的形状周围画一个细的轮廓。
我可以通过将用于绘制的宽度设置为 20来做到这一点(我想要的宽度 * 2,因为它在内部绘制一半,在外部绘制一半)。这给出了正确的外部形状,但线条丑陋;没有办法(我可以看到)得到这个形状并用细线勾勒它。QPen
QGraphicsPathItem
这QPainterPathStroker
门课看起来很有希望,但我似乎无法按照我的意愿去做。
c++ - 强制 QGraphicsItem 保持原状
我有一个QGraphicsScene
充满. 但是,我希望有一个 始终位于屏幕左上角的标签。忽略缩放很容易,我可以,但我还没有弄清楚如何强制位置保持在左上角。让我的标签“浮动”在同一个地方的最佳方法是什么?QGraphicsItems
QGraphicsItems
QGraphicsTextItem
setFlags(QGraphicsItem::ItemIgnoresTransformations)
qt - 如何在转换后找到 QGraphicsItem 的大小
我在我的 pyqt 代码的某些部分缩放 QGraphicsItem。在我的代码的另一部分中,当我调用 self.rect.adjusted(0, 0, 0, 0) 时,它会返回转换前的尺寸。我的问题是如何找到转换后的尺寸?
qt - 为什么我无法计算 QGraphicsObject 在场景事件中的位置?
我已经用 QTouchEvents 实现了 QGraphicsObject 并重新实现了 sceneEvent 函数。
我的问题是,当我触摸项目时,项目右上角会到达接触点。我想抵消我触摸的点。但是,当我这样做时,我一次只能移动一个项目。
qt - QGraphics 场景放大和缩小
在这里,我再次担心如何在图形场景中放大和缩小 QGraphicsPixmapItem。我为此寻找了一种直接的方法,但在图形场景或像素图中找不到任何方法。有人可以帮我弄这个吗。我是否必须扩展 QGraphicsPixmapItem 并为此实现方法。
再次感谢您的帮助,我真的很感激。
~塔兰加
qt - 扩展 QGraphicsScene
我正在扩展QGraphicsItem
以添加到扩展的QGraphicsSene
. 当我以正常方式将扩展项目添加到场景并将场景添加到图形视图时,它会显示图像,但是当我按如下方式添加图像时,它不会显示。有人可以检查一下并告诉我这个问题。
标题
资源
主要的
c++ - Qt:是否允许非矩形 QWidget 重叠?
如果我有多个非矩形自定义QWidget
(例如圆形按钮),我可以重叠它们吗?
似乎没有办法让 Qt 知道小部件的哪些部分是不透明的,因此鼠标事件被传递给正确的QWidget
(看起来 Qt 假设每个小部件都占据其边界矩形)。
我应该把这些小部件变成QGraphicsItem
s 吗?
c++ - QGraphicsItem 插入顺序
我有使用 QGraphicsScene + QGraphicsView 进行 QGraphicsItem 组织的项目。所有图形项目都是可移动和可选择的。
问题是:当我在场景中插入新的 QGraphicsItem 并且这个项目比前一个项目大时,我无法用鼠标选择它。
来自 Qt 文档:
默认情况下,所有同级项目按插入顺序堆叠(即,您添加的第一个项目>在您添加的下一个项目之前绘制)。如果两个项目的 Z 值不同,则将具有最高 Z 值的项目 > 绘制在顶部。当 Z 值相同时,插入 >order 将决定堆叠顺序。
问题,如何更改图形项的插入顺序?
我尝试为 QGraphicsView 子类化 mousePressEvent 并使用 stackBefore() 方法帮助更改插入顺序。如果所有项目混合在一起并相互重叠需要做很多点击来选择需要的项目。
c++ - QGraphicsScene 中不显示任何内容
我正在尝试使用 qgraphicsview qgraphicsitem 创建像国际象棋这样的场景。
我正在按照官方示例尝试创建它,但没有显示任何内容。代码几乎相同。起初,我想知道是我的 Cell 课程。所以我只是试着画一个矩形。但是没有任何显示。以下是我的代码,有人可以帮助我。我在 Windows 7 上使用 Qt 4.7
细胞.h
细胞.cpp
视图.h
视图.cpp
主窗口.h
主窗口.cpp
主文件