rubberbandwidget.cpp

来自「Trolltech公司发布的基于C++图形开发环境」· C++ 代码 · 共 61 行

CPP
61
字号
/****************************************************************************** $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 + =
减小字号Ctrl + -
显示快捷键?