【发布时间】:2019-09-05 12:21:30
【问题描述】:
我在将一个项目的坐标中的点转换为另一项目的坐标时遇到困难,就像这样
from PySide import QtGui, QtCore
import sys
class Editor(QtGui.QMainWindow):
def __init__(self, parent=None):
super(Editor, self).__init__(parent)
scene = QtGui.QGraphicsScene()
line0 = QtGui.QGraphicsLineItem( 10 , 210 , 10 , 300 )
line1 = QtGui.QGraphicsLineItem( 100 , 210 , 100 , 300 )
scene.addItem( line0 )
scene.addItem( line1 )
view = QtGui.QGraphicsView()
view.setScene( scene )
self.setGeometry( 250 , 250 , 600 , 600 )
self.setCentralWidget(view)
self.show()
print line1.mapToItem( line0 , QtCore.QPoint( 0 , 0 ) ) # QPoint( 0 , 0 ) in line0's coordinates -> line1's coordinates
print line1.mapToScene( QtCore.QPointF( 0 , 0 ) ) # QPoint( 0 , 0 ) in line0's coordinates -> screen coordinates
if __name__=="__main__":
app=QtGui.QApplication(sys.argv)
myapp = Editor()
sys.exit(app.exec_())
结果似乎表明转换失败
PySide.QtCore.QPointF(0.000000, 0.000000)
PySide.QtCore.QPointF(0.000000, 0.000000)
【问题讨论】:
-
什么是
PySide?这是你做的课吗? -
它是 Qt Python binding
-
@Olumide 你打算得到什么?,我看是对的
-
@eyllanesc 我期待看到 line1 wrt line0 的坐标,例如( -90 , 0)
-
@Olumide 好的,那是
line1.mapToItem(line0, ...和其他情况?
标签: python pyside qgraphicsview qgraphicsscene qgraphicsitem