问题标签 [qgraphicspixmapitem]

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.

0 投票
3 回答
4349 浏览

qt - QGraphicsItem :模拟不是左上角的项目原点

我的应用程序正在使用 Qt。

我有一个继承QGraphicsPixmapItem的类。

在这些项目上应用变换(例如,旋转)时,项目的原点(或枢轴点)始终是左上角。

我想改变这个原点,例如,在设置项目的位置时,这实际上会改变像素图的中心。

或者,如果我正在应用旋转,则旋转的原点将是像素图的中心。

我还没有找到使用 Qt 直接开箱即用的方法,所以我想像这样重新实现itemChange()

我认为这会起作用,因为Qt 的文档提到项目的位置及其变换矩阵是两个不同的概念。

但它不起作用。

任何的想法 ?

0 投票
1 回答
1075 浏览

qt - qt - 在 QGraphicsScene 中如何捕捉特定项目

我有很多东西在我的QGraphicsScene. 情况是我正在创建一个棋盘,并且正在使用图形场景。所以QGraphicsScene有这么多QGraphicsPixmapItems。现在在这我怎么能得到国王。

更新: 在此QGraphicsScene,我添加QGraphicsPixmapItems的只是硬币(棋盘、国王、女王、士兵等)。现在,如果我想移动一个特定的硬币,比如说金,那么我怎么能得到它。有一些方法,例如使用迭代器。但是有没有办法QGraphicsPixmapItem通过它的名字找到一个特定的。

0 投票
1 回答
1579 浏览

c++ - 缩放和变换 Qgraphicspixmapitem

我在缩放和转换时遇到问题QGraphicsPixmapItem。我创建了图形编辑器,我在其中使用QGraphicsItem初始大小 100,100,之后我通过setTransform()方法调整和旋转它。

之后,我将存储此转换并将其用于我的另一个名为 player 的应用程序,在该应用程序中,我使用这些转换并在其上显示图像和视频,QgraphicsPixmapItem如果我设置缩放和setTransform图像清晰度的方法,我现在将用于显示图像其清晰度被破坏.

即使我缩放和转换它是否可以保持清晰。我使用的图像是 2560x1440 像素。任何帮助将不胜感激。

代码是:

0 投票
1 回答
374 浏览

c++ - 通过键盘移动 QGraphicsPixmapItem

我通过 QgraphicsPixmapitem 添加了一个字符,现在我想通过按键盘上的箭头键来移动它。但我找不到办法。它给出了编译错误。请帮帮我!

moveship.h(我的 QPixmapItem 的头文件)

我只是在检查它是否识别任何按键。

keyPressEvent 的实现:

我的主要源文件:

请帮忙 :(

编辑:

我得到的编译错误是:

错误:没有匹配函数调用'moveship::moveship(QPixmap&)'
moveship * player = new moveship(q);

0 投票
1 回答
42 浏览

python - PyQt4 中未显示图像:调试提示

我正在用 PyQt 编写一个应用程序,其中显示了很多图像。我对所有图像都使用基本相同的绘图例程,除了一个位于选项卡小部件中的图像外,它工作正常。这里的绘图例程:

该例程适用于我所有其他 QImageViews/Scenes,因此错误必须在其他地方。我使用 ipdb 和 pyqtRemoveInputHook() 进行调试,但是很难检查对象,因为没有办法在中间方法中显示图像。有任何想法吗?

0 投票
0 回答
155 浏览

qt - 如何在 QGraphicsPixmapItem 上添加视觉效果?

我正在使用 Qt 5.5.0。

我想知道一种在QGraphicsPixmapItem-s 上添加(和删除)简单效果的好方法。

更具体地说,我有多个QGraphicsPixmapItem-s 在现场移动。当它们发生碰撞时,我希望一个项目暂时变白,然后返回原始像素图项目。

我在 Class 的文档中找到的QGraphicsPixmapItem唯一可能是我需要的东西就是virtual void paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget)成员。但是我如何使用它来实现我的目标?

0 投票
1 回答
1012 浏览

qt - QGraphicPixmapItem 双击事件在 QGraphicsTextItem 发送时不会转到父小部件

我在 Qt 中有一个主小部件,这个小部件在其中包含一个QGraphicsViewQGraphicsScene。在场景中,我添加了QGraphicsPixmapItems 和QGraphicsTextItems。在我处理的主要小部件QWidget::mouseDoubleClickEvent ( QMouseEvent * event )中,我的项目都设置了以下标志:

因为我想在场景中移动项目并选择它们,而且我想在双击发生时主小部件处理它。当我双击QGraphicsTextItem它进入mouseDoubleClickEvent主小部件时,但是当我双击QGraphicsPixmap项目时,它会吸收双击并且不会将其发送到主小部件。此外,当ItemIsFocusable未设置标志时,QGraphicsTextItem也会吸收双击事件。为什么会出现?。
我不想实现QGraphicsItems 的子类并且想使用已经定义的方法。这是我所做的图片:

在此处输入图像描述

0 投票
1 回答
58 浏览

image - 简化 Qt 程序,我无法使用 QGraphicsScene 在 Qt 中显示图像

这两个代码段都加载到图像中。代码 1,加载图像并具有缩放功能,代码 2 应该只加载图像。代码 1 完美运行,但是当我尝试简化它时,我失去了加载图像功能。由于某种原因,图像在可见之前就被破坏了。

看起来它应该是相当直截了当的,但我似乎无法修复它。

代码 1:(这可行,但似乎过于复杂)

代码 1 的输出

代码2:(这是简化版,但已损坏)

代码 2 的输出

0 投票
0 回答
355 浏览

qt - 使用 QGraphicsScene 在 Qt 中绘制图像时遇到问题

  1. 下面的代码使用 QLabel 加载图像。代码使用:myLabel.setMask(pixmap.mask()); 它可以正常工作。当我尝试使用 QGraphicsScene 加载图像时,问题就出现了。

    /li>
  2. 在这段代码中,我尝试与上面相同,但使用 QGraphicsScene。像素图已正确加载,之后我不确定程序为什么不能正常工作。是因为没有 setMask() 操作吗?或者是否缺少使图像可见所需的操作?

    /li>
0 投票
1 回答
316 浏览

c++ - 在 QGraphicsScene 中缩放和旋转的 QGraphicsPixmapItem 的奇怪绘图行为

我在 QGraphicsScene 中有一个 QGraphicsPixmapItem,然后我放大并在 QGraphicsView 中旋转。如果没有旋转或者我没有放大太远,一切都很好,但是当我放大(像素非常明显)并围绕奇怪的事情发生旋转时。有时图像看起来如我所料,有时像素图消失(部分或完全),有时水平渐变出现在图像上(即使图像旋转它们也保持水平)。

带有渐变的图像在此处输入图像描述

第一个图像是一个图表(应该没有颜色渐变),上面有一个单独的网格(线条的集合)。第二张图片来自我的最小示例(下图),显示像素图部分缺失(镜头远离像素图边缘)。

以下是一个简单的示例,它演示了我所看到的大部分内容。

与此相关的其他文件是包含图像的资源文件、在其 ui 中保存 View 的 QMainWindow 类,以及执行主窗口类的 main,所有这些都在Github 项目中可用。

使用鼠标滚轮放大并使用箭头键旋转(您也可以使用鼠标平移)。如果放大到足够远并旋转,像素图将在某些角度消失(部分或完全)。在这个例子中,我还无法重新创建渐变,但我怀疑它们只是同一问题的另一种表现形式。

我已经尝试将转换设置为 SmoothTransformation 并将 renderHint 设置为 Antialiasing 和 HighQualityAntialiasing 但两者都没有产生重大影响(抗锯齿确实在高缩放时平滑了锯齿)。此外,我尝试在 QGraphicView、QGraphicsScene 相关绘图中切换许多标志。有谁知道为什么会发生这种情况或我可以尝试解决什么?

我在 2016 年 10 月 18 日下载的 Qt 4.8.2 和 Qt 5.5.1 中都看到了这个问题,作为 Qt 的当前稳定版本。