資源簡介
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
- 上一篇:土狼優化算法
- 下一篇:LORA實現收發,SX1278+STM32F103
評論
共有 條評論