資源簡介
使用QT實現的圖片自定義大小剪切, 主要用戶用戶頭像裁剪。
代碼片段和文件信息
#include?“cutdialog.h“
#include?
CutDialog::CutDialog(QWidget?*parent)?:m_isMoving(false)?m_mouse_down(false)
????Qframe(parent)?m_left(false)?m_right(false)?m_top(false)?m_bottom(false)
{
setWindowFlags(Qt::framelessWindowHint);
setMouseTracking(true);
setGeometry(00100100);
? label?=?new?QLabel(this);
QGridLayout?*layout?=?new?QGridLayout(this);
layout->addWidget(label);
layout->setMargin(0);
setLayout(layout);
? label->setMouseTracking(true);
}
?
CutDialog::~CutDialog()
{
???
}
void?CutDialog::resizeEvent(QResizeEvent?*event)
{
}
void?CutDialog::mousePressEvent(QMouseEvent?*?event)
{
m_startPoint?=?event->pos();
m_mouse_down?=?event->button()?==?Qt::LeftButton;
}
void?CutDialog::paintEvent(QPaintEvent?*event)
{
QPainter?paint(this);
QPen?pen;
QVector?dashes;
qreal?space?=?3;
dashes?<5?< pen.setDashPattern(dashes);
pen.setColor(Qt::white);
QPen?pen0;
pen0.setColor(QColor(54158254120));
pen0.setWidth(2);
paint.setPen(pen0);
paint.drawRect(10width()-2width()-2);
paint.setPen(pen);
? int?x_pos?=?(int)?width()/3.0;
int?y_pos?=?(int)?height()/3.0;
? paint.drawLine(x_pos?0?x_pos?height());
paint.drawLine(2*x_pos?0?2*x_pos?height());
paint.drawLine(0?y_pos?width()?y_pos);
paint.drawLine(0?2*y_pos?width()?2*y_pos);
paint.drawEllipse(00width()?width());
}
QRect?CutDialog::getResizeGem(QRect?oldgeo?QPoint?mousePoint)
{
QRect?g?=?oldgeo;
bool?lorr?=?m_left?|?m_right;
bool?torb?=?m_top?|?m_bottom;
int?dx?=?mousePoint.x()?-?m_startPoint.x();
int?dy?=?mousePoint.y()?-?m_startPoint.y();
if(lorr?&&?torb)
{
int?maxLen?=?qMin(qAbs(dx)qAbs(dy));
if(m_left?&&?m_top?&&?dx*dy?>0)
{
g.setLeft(dx?>0??g.left()?+?maxLen?:?g.left()?-?maxLen);
g.setTop(dy?>0??g.top()?+?maxLen?:?g.top()?-?maxLen);
}
if(m_right?&&?m_top?&&?dx*dy?0)
{
g.setRight(dx>0???g.right()?+?maxLen:g.right()?-?maxLen);
g.setTop(dy?>0??g.top()?+?maxLen?:?g.top()?-?maxLen);
}
if(m_right?&&?m_bottom?&&?dx*dy?>?0)
{
g.setRight(dx>0???g.right()?+?maxLen:g.right()?-?maxLen);
g.setBottom(dy?>0??g.bottom()?+?maxLen?:?g.bottom()?-?maxLen);
}
if(m_left?&&?m_bottom?&&?dx*dy?0)
{
g.setLeft(dx?>0??g.left()?+?maxLen?:?g.left()?-?maxLen);
g.setBottom(dy?>0??g.bottom()?+?maxLen?:?g.bottom()?-?maxLen);
}
return?g;
}
else?if(lorr)
{
if(m_left)
g.setLeft(g.left()?+?dx);
if(m_right)
g.setRight(g.right()?+?dx);
int?len?=?g.width()?-?oldgeo.width();
int?intHight?=?(int)?len/2.0;
g.setTop(g.top()?-?intHight);
g.setBottom(g.bottom()?+?len?-?intHight);
}
else?if(torb)
{
if(m_bottom)
g.setBottom(g.bottom()?+?dy);
if(m_top)
g.setTop(g.top()?+?dy);
int?dheigt?=?g.height()?-?oldgeo.height();
int?intWidth?=?(int)?dheigt/2.0;
g.setLeft(g.left()?-?intWidth);
g.setRight(g.right()?+?dheigt?-?intWidth);
}
? re
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-10-20?19:25??PictureEdit\
?????文件???????19510??2015-02-27?14:37??PictureEdit\3h.png
?????目錄???????????0??2015-10-20?18:39??PictureEdit\ipch\
?????目錄???????????0??2015-10-20?19:08??PictureEdit\ipch\pictureedit-f3be604e\
?????文件????61014016??2015-10-20?19:08??PictureEdit\ipch\pictureedit-f3be604e\pictureedit-c7c2c0ae.ipch
?????目錄???????????0??2015-02-28?14:17??PictureEdit\PictureEdit\
?????文件????23220224??2015-10-20?19:25??PictureEdit\PictureEdit.sdf
?????文件?????????900??2015-01-29?10:09??PictureEdit\PictureEdit.sln
?????文件???????77312??2015-10-20?19:25??PictureEdit\PictureEdit.suo
?????文件????????4708??2015-10-20?19:08??PictureEdit\PictureEdit\cutdialog.cpp
?????文件?????????874??2015-10-20?18:59??PictureEdit\PictureEdit\cutdialog.h
?????目錄???????????0??2015-10-20?19:24??PictureEdit\PictureEdit\Debug\
?????文件???????15254??2015-10-20?19:24??PictureEdit\PictureEdit\Debug\cl.command.1.tlog
?????文件??????268252??2015-10-20?19:24??PictureEdit\PictureEdit\Debug\CL.read.1.tlog
?????文件???????27904??2015-10-20?19:24??PictureEdit\PictureEdit\Debug\CL.write.1.tlog
?????文件????????8670??2015-10-20?18:59??PictureEdit\PictureEdit\Debug\custombuild.command.1.tlog
?????文件????????2434??2015-10-20?18:59??PictureEdit\PictureEdit\Debug\custombuild.read.1.tlog
?????文件????????3754??2015-10-20?18:59??PictureEdit\PictureEdit\Debug\custombuild.write.1.tlog
?????文件??????138581??2015-10-20?19:12??PictureEdit\PictureEdit\Debug\cutdialog.obj
?????文件????????3676??2015-10-20?19:24??PictureEdit\PictureEdit\Debug\li
?????文件????????6508??2015-10-20?19:24??PictureEdit\PictureEdit\Debug\li
?????文件????????2400??2015-10-20?19:24??PictureEdit\PictureEdit\Debug\li
?????文件???????94300??2015-10-20?18:41??PictureEdit\PictureEdit\Debug\main.obj
?????文件???????74098??2015-10-20?18:59??PictureEdit\PictureEdit\Debug\moc_cutdialog.obj
?????文件???????60129??2015-02-26?09:39??PictureEdit\PictureEdit\Debug\moc_myba
?????文件???????73196??2015-10-20?18:59??PictureEdit\PictureEdit\Debug\moc_PhotoShotDialog.obj
?????文件???????98216??2015-10-20?18:41??PictureEdit\PictureEdit\Debug\moc_pictureedit.obj
?????文件?????????618??2015-10-20?19:24??PictureEdit\PictureEdit\Debug\mt.command.1.tlog
?????文件?????????804??2015-10-20?19:24??PictureEdit\PictureEdit\Debug\mt.read.1.tlog
?????文件?????????432??2015-10-20?19:24??PictureEdit\PictureEdit\Debug\mt.write.1.tlog
?????文件???????86735??2015-02-15?14:38??PictureEdit\PictureEdit\Debug\myba
............此處省略42個文件信息
- 上一篇:地理信息系統原理與方法 吳信才
- 下一篇:機翼設計軟件
評論
共有 條評論