• 大小: 8KB
    文件类型: .xz
    金币: 1
    下载: 0 次
    发布日期: 2021-05-13
  • 语言: 其他
  • 标签: Qt  C++  

资源简介

Qt 开发的绘图软件,功能完善,撤销,恢复,复制粘贴,设置画笔颜色,倒入图片,编辑图片等等

资源截图

代码片段和文件信息

#include “explainwidget.h“

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#pragma execution_character_set(“utf-8“)

ExplainWidget::ExplainWidget(QWidget* parent) : 
QWidget(parent)
{
initUI();
initAnimation();
}

void ExplainWidget::initUI()
{
this->setWindowFlags(Qt::framelessWindowHint);
this->setAttribute(Qt::WA_TranslucentBackground);
this->resize(640 400);

this->widget = new QWidget;
this->widget->close();
this->widget->setstyleSheet(“QWidget{border-image: url(./image/background/background (3).jpg); border-radius:20px;}“);

QGraphicsDropShadowEffect* shadow = new QGraphicsDropShadowEffect(widget);
shadow->setOffset(0 0);
shadow->setColor(QColor(“#FFF0F5“));
shadow->setBlurRadius(20);

QGridLayout* grid_layout = new QGridLayout(this);
grid_layout->addWidget(widget);
grid_layout->setMargin(PADDING);

this->widget->setGraphicsEffect(shadow);
this->setLayout(grid_layout);


QLabel* lb = new QLabel(widget);
lb->setstyleSheet(“border-image:transparency; border-radius:20px; font-size:19px; color:#373641; font-weight:500; font-family:幼圆;“);
lb->move(-80 50);
lb->setText
(“\
快捷键 Ctrl + C 复制选中区域\n\
快捷键 Ctrl + V 粘贴选中区域\n\
快捷键 Ctrl + X 剪切选中区域\n\
快捷键 Ctrl + Z 撤销\n\
快捷键 Ctrl + Y 恢复\n\
快捷键 Delete   删除选中区域\n\
鼠标滚轮 快速调节属性值\n\
\n\
说明 : 右键取消所有绘制状态\n\
说明 : 调节属性值时 滚轮需要悬停到属性栏\n\
说明 : 切换画笔形状也可以使用滚轮\n\
说明 : 橡皮擦的大小取决于线宽\n\
“);

}

void ExplainWidget::initAnimation()
{
setProperty(“angleValue“ 0);
rotateAnimation = new QPropertyAnimation(this “angleValue“);
rotateAnimation->setDuration(ANIMATION_TIME);
rotateAnimation->setEasingCurve(QEasingCurve::OutSine);
rotateAnimation->setStartValue(FOLD_NUM * FLIP_ANGLE - FLIP_ANGLE / 2);
rotateAnimation->setEndValue(0);

connect(rotateAnimation &QPropertyAnimation::valueChanged this &ExplainWidget::valueChanged);
connect(rotateAnimation &QPropertyAnimation::finished this &ExplainWidget::showFinished);
}

void ExplainWidget::show()
{
if (is_show)
{
is_show = false;
QWidget::close();
}
else
{
is_show = true;
QWidget::show();
widget->close();
pixmap = widget->grab();

rotateAnimation->setDirection(QAbstractAnimation::Forward);
disconnect(rotateAnimation &QPropertyAnimation::finished this &QWidget::close);

rotateAnimation->start();
}
}

bool ExplainWidget::close()
{
if (is_show)
{
is_show = false;
QWidget::close();
return true;
}
else
{
is_show = false;
QWidget::close();
return false;
}

}

void ExplainWidget::mousePressEvent(QMouseEvent* event)
{
event->accept();
}

void ExplainWidget::paintEvent(QPaintEvent* event)
{
QPainter pai(this);
pai.setRenderHint(QPainter::Antialiasing true);

int ro

评论

共有 条评论