如何在场景中更改QWidget(QTextEdit)的位置(PyQt)

时间:2016-05-09 06:19:41

标签: python qt pyqt

我有一个包含QGraphicsView和场景的应用程序。我在场景中创建了一个文本框,我希望每当我将鼠标悬停在图形项目上时它就会出现,然后我希望它在光标不在图形项目上时消失。我想更改该文本框的位置,使其位于图形项旁边。我编写了这段代码,但消息框仍然出现在场景之外(或者说是确切的应用程序)。

class graphicsScene(QtGui.QGraphicsScene):
    def __init__(self, parent=None):
        super(graphicsScene, self).__init__(parent)
        self.text = QtGui.QTextEdit()
        self.text.setVisible(False)

    def mouseMoveEvent(self, event):
        self.cursorCurrentPosition = event.scenePos()
        self.current = QtCore.QPointF(self.cursorCurrentPosition.x(), self.cursorCurrentPosition.y())
        if len(switchObject_list) > 0:
            for switch in switchObject_list:
                if switch.isUnderMouse():
                    print 'under mouse'
                    self.text.setVisible(True)
                    pos = self.text.mapToParent(self.current.toPoint())
                    self.text.move(pos)
                else:
                    self.text.setVisible(False)

0 个答案:

没有答案