标签: qgraphicspixmapitem

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

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

我有一个继承QGraphicsPixmapItem的类。

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

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

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

我还没有找到一种直接用 Qt 来实现它的方法,所以我想像这样重新实现itemChange()

QVariant JGraphicsPixmapItem::itemChange(GraphicsItemChange Change, const QVariant& rValue)
{
    switch (Change)
    {
    case QGraphicsItem::ItemPositionHasChanged:
        // Emulate a pivot point in the center of the image
        this->translate(this->boundingRect().width() / 2,
                        this->boundingRect().height() / 2);
        break;
    case QGraphicsItem::ItemTransformHasChanged:
        break;
    }
    return QGraphicsItem::itemChange(Change, rValue);
}
Run Code Online (Sandbox Code Playgroud)

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

但它不起作用。

任何的想法 ?

qt qgraphicsitem qgraphicspixmapitem

5
推荐指数
1
解决办法
4282
查看次数

是否可以将一个 QGraphicsPixmapItem 附加到另一个?

我目前正在 Python 中使用 PyQt4,但我无法在网上找到任何关于将 PyQt UI 上的 GraphicsView 类中的 2 个不同项目组合在一起的任何信息。这可能吗?

目标是将一个 QGraphicsPixmapItem 锚定到 GraphicsView 类中的另一个,这样当一个位置改变或旋转时,另一个跟随。更重要的是,是否可以将一个 QGraphicsPixmapItem 锚定到另一个的特定位置?例如边缘,这样当另一个图形项被旋转或移动时,锚定的图形项将保持在相对于移动项的准确位置。

python pyqt pyqt4 qgraphicspixmapitem

2
推荐指数
1
解决办法
95
查看次数

标签 统计

qgraphicspixmapitem ×2

pyqt ×1

pyqt4 ×1

python ×1

qgraphicsitem ×1

qt ×1