Hello Community,
I try to implement Zoom Window and Select Area using Mouse+SHIFT but this code
from
class qtviewer3d doesn't work for me.
So, I changed the following code:
# Draw rect
def DrawBox( self , event):
tolerance = 2
pt = point( event.pos() )
dx = pt.x - self.dragStartPos.x
dy = pt.y - self.dragStartPos.y
if abs( dx ) <= tolerance and abs( dy ) <= tolerance:
return
painter = QtGui.QPainter()
painter.begin(self)
painter.setPen(QtGui.QPen(QtGui.QColor(255,255,255), 1,
QtCore.Qt.DotLine, QtCore.Qt.RoundCap,
QtCore.Qt.RoundJoin))
rect = QtCore.QRect(self.dragStartPos.x, self.dragStartPos.y, dx, dy )
self._drawbox = [self.dragStartPos.x, self.dragStartPos.y , dx, dy]
painter.drawRect( rect )
self.repaint()
painter.end()
# and mouse release event
def mouseReleaseEvent( self, event ):
self.setCursor( self.crossNormalBitmapCursor )
pt = point(event.pos())
#print 'mouse release event'
if event.button() == QtCore.Qt.LeftButton:
pt = point(event.pos())
self.repaint()
if self._select_area:
[Xmin, Ymin, dx, dy] = self._drawbox
selected_shapes =
self._display.Select(Xmin,Ymin,Xmin+dx,Ymin+dy)
self._select_area = False
elif self._display.Select(pt.x,pt.y):
selected_shape = self._display.GetSelectedShape()
print selected_shape,selected_shape.ShapeType()
# This part comes here !!!
elif event.button() == QtCore.Qt.RightButton:
if self._zoom_area:
[Xmin, Ymin, dx, dy] = self._drawbox
self._display.ZoomArea(Xmin, Ymin, Xmin+dx, Ymin+dy)
self._zoom_area = False
# and I set following Attribute
#self.setAttribute(QtCore.Qt.WA_PaintOutsidePaintEvent)
class qtViewer3d( qtBaseViewer ):
def __init__( self, *kargs ):
qtBaseViewer.__init__( self, *kargs )
self._drawbox = False
self._zoom_area = False
self._select_area = False
self._inited = False
self._leftisdown = False
self._middleisdown = False
self._rightisdown = False
self._selection = None
self._drawtext = True
# Very Important
self.setAttribute(QtCore.Qt.WA_PaintOutsidePaintEvent)
So, for now it works Zoom Window if I use RMB+SHIFT,
but Select Area (LMB+SHIFT) still not working.
hier is output from console:
Traceback (most recent call last):
File "", line 656, in mouseReleaseEvent
selected_shapes = self._display.Select(Xmin,Ymin,Xmin+dx,Ymin+dy)
TypeError: Select() takes exactly 3 arguments (5 given)
Traceback (most recent call last):
File " ", line 655, in mouseReleaseEvent
[Xmin, Ymin, dx, dy] = self._drawbox
TypeError: 'bool' object is not iterable
I do not know how to fix this error.
I am using Debian GNU/Linux "squeeze".
_______________________________________________
Pythonocc-users mailing list
[email protected]
https://mail.gna.org/listinfo/pythonocc-users