[英]Movable QGraphicsLineItem bounding box
我正在嘗試將可拖動的QtGui.QGraphicsLineItem添加到pyqtgraph.plotItem中。
從PyQt4導入QtCore,QtGui導入pyqtgraph作為pg
app = QtGui.QApplication([])
w = pg.PlotWidget()
w.show()
line = QtGui.QGraphicsLineItem()
line.setFlag(QtGui.QGraphicsItem.ItemIsMovable)
line.setPen(QtGui.QPen(QtGui.QColor(255, 0, 0), 2))
line.setLine(0, 0, 100, 100)
w.plotItem.addItem(line)
app.exec_()
但是,存在幾個問題:-縮放圖時線寬會發生變化-拖動開始的區域包括整個矩形邊界框(請參見下圖)
我嘗試了以下技巧:1)
line.setFlag(QtGui.QGraphicsItem.ItemIgnoresTransformations)
w.plotItem.addItem(line)
2)
line.setParentItem(w.plotItem.vb)
但是拖動區域問題仍然存在
您可以使用pyqtgraph中的LineSegmentRoi 。
line = pg.LineSegmentROI([0, 100], [0, 0], pen=(255, 0, 0))
w.plotItem.addItem(line)
好的,解決方案在這里。 當我們使用QtGui.QGraphicsLineItem時:
1)對於“縮放繪圖時線寬發生變化”的問題,請使用pen.setCosmetic(True)或使用pg.mkPen創建畫筆
2)對於“開始拖動的區域包括整個矩形邊界框(請參見下圖)”的問題,請使用mouseDragEvent而不是使用line.setFlag(QtGui.QGraphicsItem.ItemIsMovable)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.