📄 rubberbandwidget.cpp
字号:
/****************************************************************************** $Id: qt/rubberbandwidget.cpp 3.3.4 edited May 27 2003 $**** Implementation of a widget that draws a rubberband. Designed to be used ** in an X11 overlay visual**** Copyright (C) 1999 by Trolltech AS. All rights reserved.**** This file is part of an example program for Qt. This example** program may be used, distributed and modified without limitation.*******************************************************************************/#include "rubberbandwidget.h"#include <qpainter.h>RubberbandWidget::RubberbandWidget( QColor transparentColor, QWidget *parent, const char *name, WFlags f ) : QWidget( parent, name, f ){ setBackgroundColor( transparentColor ); on = FALSE;}void RubberbandWidget::mousePressEvent( QMouseEvent* e ){ p1 = e->pos(); p2 = p1; p3 = p1; on = TRUE; setMouseTracking( TRUE );}void RubberbandWidget::mouseMoveEvent( QMouseEvent* e ){ if ( on ) { p2 = e->pos(); QPainter p( this ); // Erase last drawn rubberband: p.setPen( QPen( backgroundColor(), 3 ) ); p.drawRect( QRect( p1, p3 ) ); // Draw the new one: p.setPen( QPen( white, 3 ) ); p.drawRect( QRect(p1, p2) ); p3 = p2; }}void RubberbandWidget::mouseReleaseEvent( QMouseEvent* ){ if ( on ) { QPainter p ( this ); p.eraseRect( rect() ); } on = FALSE; setMouseTracking( FALSE );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -