簡體   English   中英

可移動QGraphicsLineItem邊界框

[英]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_()

但是,存在幾個問題:-縮放圖時線寬會發生變化-拖動開始的區域包括整個矩形邊界框(請參見下圖) drag_area

我嘗試了以下技巧: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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM