#include "maxpicshowform.h"
#include "ui_maxpicshowform.h"
#include <iostream>
#pragma execution_character_set("utf-8")//让能够正常显示中文字符串
MaxPicShowForm::MaxPicShowForm(QWidget *parent) :
QWidget(parent),
m_bMax(true),
m_bCtrlKeyPressed(false),
m_bClipPic(false),
m_bOriginalSize(false),
m_bFixWidthSize(false),
m_bFixHeightSize(false),
ui(new Ui::MaxPicShowForm),
m_Image(nullptr),
m_myGraphicRectItem(nullptr),
m_dSliderSecs(5),
m_bStartSlider(false),
movie(nullptr)
{
ui->setupUi(this);
m_qgraphicsScene = new myGraphicsScene;//要用QGraphicsView就必须要有QGraphicsScene搭配着用
QObject::connect(m_qgraphicsScene,&myGraphicsScene::keyPressEventSig,this,&MaxPicShowForm::getKeyPressEvent);//为了让本类接收子控件m_qgraphicsScene接收到的按键信号
mygraphicview = new myGraphicView(this);
mygraphicview->setObjectName(QString::fromUtf8("mygraphicview"));
mygraphicview->setGeometry(QRect(0, 0, 256, 192));
mygraphicview->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
mygraphicview->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
QSizePolicy sizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
sizePolicy.setHorizontalStretch(0);
sizePolicy.setVerticalStretch(0);
sizePolicy.setHeightForWidth(mygraphicview->sizePolicy().hasHeightForWidth());
mygraphicview->setSizePolicy(sizePolicy);
mygraphicview->setBackgroundBrush(QBrush(QColor(240,240,240,255)));
QObject::connect(mygraphicview,&myGraphicView::DragDropFileLst,this,&MaxPicShowForm::getDragDropFileLst);//为了让本类接收子控件接收到的拖拽文件事件
//mygraphicview->setStyleSheet(QString::fromUtf8("border-image: url(:/image/debug_screenbg);"));//设置背景图
//显示GIF用的label
labelGIF = new myLabel(this);
labelGIF->setGeometry(QRect(0, 0, 256, 192));
QSizePolicy sizePolicyGIF(QSizePolicy::Fixed, QSizePolicy::Fixed);
sizePolicyGIF.setHorizontalStretch(0);
sizePolicyGIF.setVerticalStretch(0);
sizePolicyGIF.setHeightForWidth(labelGIF->sizePolicy().hasHeightForWidth());
labelGIF->setSizePolicy(sizePolicyGIF);
QObject::connect(labelGIF,&myLabel::DragDropFileLst,this,&MaxPicShowForm::getDragDropFileLst);//为了让本类接收子控件接收到的拖拽文件事件
// mygraphicview->setVisible(false);
labelGIF->setVisible(false);
//上下左右的label,为了控制界面能够拖动拉伸
labelLft = new myLabel(this);
labelLft->setStyleSheet("QLabel {background-color: transparent;}");//设置背景透明
labelLft->raise();
labelLft->setScaleCursor(1);
connect(labelLft,&myLabel::moveEventSig,this,&MaxPicShowForm::getLeftScaleEvent);
labelRit = new myLabel(this);
labelRit->setStyleSheet("QLabel {background-color: transparent;}");//设置背景透明
labelRit->raise();
labelRit->setScaleCursor(1);//设置为左右拉升光标
connect(labelRit,&myLabel::moveEventSig,this,&MaxPicShowForm::getRightScaleEvent);
labelBot = new myLabel(this);
labelBot->setStyleSheet("QLabel {background-color: transparent;}");//设置背景透明
labelBot->raise();
labelBot->setScaleCursor(2);//设置为上下拉升光标
connect(labelBot,&myLabel::moveEventSig,this,&MaxPicShowForm::getBottomScaleEvent);
labelTop = new myLabel(this);
labelTop->setStyleSheet("QLabel {background-color: transparent;}");//设置背景透明
labelTop->setScaleCursor(2);//设置为上下拉升光标
connect(labelTop,&myLabel::moveEventSig,this,&MaxPicShowForm::getTopScaleEvent);
labelRB = new myLabel(this);
labelRB->setStyleSheet("QLabel {background-color: transparent;}");//设置背景透明
labelRB->setScaleCursor(3);//设置为右下拉升光标
connect(labelRB,&myLabel::moveEventSig,this,&MaxPicShowForm::getRBScaleEvent);
//没有图片时候的背景
labelScreenBack = new myLabel(this);
labelScreenBack->setStyleSheet(QString::fromUtf8("border-image: url(:/image/screenback);"));
labelScreenBack->setGeometry(0,0,this->width(),this->height());
//标题栏的label
labelTital = new myLabel(this);
labelTital->setText(" EditPic by Bruce");
labelTital->setGeometry(0,0,this->width(),30);
labelTital->setStyleSheet(QString::fromUtf8("border-image: url(:/image/titalback);"));
QPalette pa;
pa.setColor(QPalette::WindowText,Qt::white);
labelTital->setPalette(pa);
labelTital->setWindowFlags(Qt::WindowStaysOnTopHint);//置顶显示
labelTital->raise();
connect(labelTital,&myLabel::moveEventSig,this,&MaxPicShowForm::getMoveEvent);
labelclose = new myLabel(this);
labelclose->setStyleSheet(QString::fromUtf8("border-image: url(:/image/close);"));
labelclose->raise();
connect(labelclose,&myLabel::mouseReleasedSig,this,&MaxPicShowForm::getCloseEvent);
labelmax = new myLabel(this);
labelmax->setStyleSheet(QString::fromUtf8("border-image: url(:/image/max);"));
labelmax->raise();
connect(labelmax,&myLabel::mouseReleasedSig,this,&MaxPicShowForm::getMaxEvent);
labelpopMenu = new myLabel(this);
labelpopMenu->setStyleSheet(QString::fromUtf8("border-image: url(:/image/popMenu);"));
labelpopMenu->raise();
connect(labelpopMenu,&myLabel::mouseReleasedSig,this,&MaxPicShowForm::getShowpopMenuEvent);
labelOpenInTital = new myLabel(this);
labelOpenInTital->setStyleSheet(QString::fromUtf8("border-image: url(:/image/open0);"));
labelOpenInTital->raise();
connect(labelOpenInTital,&myLabel::mouseReleasedSig,this,&MaxPicShowForm::getOpenFileEvent);
labelmin = new myLabel(this);
labelmin->setStyleSheet(QString::fromUtf8("border-image: url(:/image/min);"));
labelmin->raise();
connect(labelmin,&myLabel::mouseReleasedSig,this,&MaxPicShowForm::getMinEvent);
labelTop->raise();
labelRB->raise();
//打开文件的labelOpenFile
labelOpenFile = new myLabel(this);
labelOpenFile->setStyleSheet(QString::fromUtf8("border-image: url(:/image/open);"));
labelOpenFile->setGeometry(this->width()/2-100,this->height()/2-40,200,80);
labelOpenFile->raise();
connect(labelOpenFile,&myLabel::mouseReleasedSig,this,&MaxPicShowForm::getOpenFileEvent);
//左右切换按钮
labelLeftArrow = new myLabel(this);
labelLeftArrow->setStyleSheet(QString::fromUtf8("border-image: url(:/image/leftArrow);"));
labelLeftArrow->setGeometry(0,0,0,0);
labelLeftArrow->raise();
connect(labelLeftArrow,&myLabel::mouseReleasedSig,this,&MaxPicShowForm::getLeftArrowEvent);
labelRightArrow = new myLabel(this);
labelRightArrow->setStyleSheet(QString::fromUtf8("border-image: url(:/image/rightArrow);"));
labelRightArrow->setGeometry(0,0,0,0);
labelRightArrow->raise();
connect(labelRightArrow,&myLabel::mouseReleasedSig,this,&MaxPicShowForm::getrightArrowEvent);
//创建菜单对象
//QMenu *pMenu = new QMenu(this);
pMenu = new QMenu(this);
QAction *pActionFitWnd = new QAction("适应窗口", pMenu);
QAction *pActionClip = new QAction("截图保存", pMenu);
QAction *pActionFitWidth = new QAction("适应宽度", pMenu);
QAction *pActionOriginSize = new QAction("原图大小", pMenu);
QAction *pActionMaxWnd = new QAction("界面最大化", pMenu);
QAction *pActionRename = new QAction("批量重命名", pMenu);
QAction *pActionSlideShow = new QAction("幻灯片播放", pMenu);
QAction *pActionSetSlideSec = new QAction("幻灯片间隔时间", pMenu);
// QAction *pToolDelete = new QAction("删除工具", pMenu);
//1:适应窗口 2:截取图片 3:删除任务 4:原始大小 5:界面最大化 6:批量重命名
pActionFitWnd->setData(1);
pActionClip->setData(2);
pActi
qt多功能图片及动画查看工具(jpg,jpeg,png,bmp,gif)
版权申诉
5星 · 超过95%的资源 104 浏览量
2022-10-26
10:46:11
上传
评论 6
收藏 1.16MB RAR 举报
GreenHandBruce
- 粉丝: 356
- 资源: 49
最新资源
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- 文件批量改名神器10.0一款简单易用的批量文件重命名工具(已注册PRO版本).rar
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
- 4
前往页