小编Hen*_*nry的帖子

QGraphicsItemGroup.removeFromGroup -- 子项未正确重新定位到场景

我正在尝试从 QGraphicsItemGroup 中删除 QGraphicsItem。当调用removeFromGroup时,该项目被删除(当然)。但是,它在场景中不再可见。我必须调用 Scene.addItem(item) 才能使其再次出现。这显然是你不应该做的事情(我因为这样做而收到了警告)。但我似乎找不到其他解决方法。

这是一个最小的例子:

import sys 

from PyQt4.QtGui import *
from PyQt4.QtCore import *

class MainWindow(QMainWindow):

    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)

        self.view = QGraphicsView()
        self.scene = QGraphicsScene()
        self.view.setScene(self.scene)

        self.setCentralWidget(self.view)


def add_group(scene):
    group = QGraphicsItemGroup()
    text = QGraphicsTextItem()
    text.setPlainText("I'm visible")
    group.addToGroup(text)
    scene.addItem(group)

    # After this, text is no longer in group. However, it is no longer visible.
    group.removeFromGroup(text)
    assert not text in group.childItems()

    # But text is still in scene. 
    assert text.scene() == scene

    # this works (i.e. …
Run Code Online (Sandbox Code Playgroud)

python qt pyqt qgraphicsview

3
推荐指数
1
解决办法
1157
查看次数

标签 统计

pyqt ×1

python ×1

qgraphicsview ×1

qt ×1