rubberband.cpp

来自「linux窗口程序设计一书的第五章代码-- 图形与图画,希望对大家有用」· C++ 代码 · 共 35 行

CPP
35
字号
#include "rubberband.h"

RubberBand::RubberBand(QWidget *parent)
	: QMainWindow(parent)
{
    QWidget *mainWidget = new QWidget;
    mainWidget->setBackgroundRole(QPalette::Light);
    mainWidget->setAutoFillBackground(true);
    setCentralWidget(mainWidget);
    
    resize(600,400);
    setWindowTitle(tr("Rubberband"));
    rubberBand = NULL;
}

void RubberBand::mousePressEvent(QMouseEvent * e)
{
    origin = e->pos();
    if (!rubberBand)
         rubberBand = new QRubberBand(QRubberBand::Rectangle, this);
    rubberBand->setGeometry(QRect(origin, QSize()));
    rubberBand->show();
}

void RubberBand::mouseMoveEvent(QMouseEvent * e)
{
    if (rubberBand)
         rubberBand->setGeometry(QRect(origin, e->pos()).normalized());
}

void RubberBand::mouseReleaseEvent(QMouseEvent * e)
{
    if (rubberBand)
         rubberBand->hide();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?