Qt5.7
功能及其简单,代码行数列不过100行,下面看看运行结果

程序原理:
①窗口置顶,去标题栏和边框;
②重写鼠标事件(鼠标左键、右击、拖动坐标换算);
③播放gif文件;
下面是.h文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QPainter>
#include <QMouseEvent>
#include <QMovie>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
virtual void mouseMoveEvent(QMouseEvent *event);
virtual void mousePressEvent(QMouseEvent *event);
virtual void mouseReleaseEvent(QMouseEvent *event);
private:
Ui::Widget *ui;
QPixmap m_MainWidgetImage;
bool m_dragging;
QPoint m_startPosition;
QPoint m_framePosition;
};
#endif
.cpp文件:
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
setWindowTitle("山寨宠物");
QMovie *MyPetMovie = new QMovie(":/timg.gif");
ui->MyPetlabel->setMovie(MyPetMovie);
setWindowFlags(Qt::Window|Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground);
setWindowFlags(Qt::FramelessWindowHint |Qt::WindowStaysOnTopHint);
MyPetMovie->start();
}
void Widget::mouseMoveEvent(QMouseEvent *event)
{
if (event->buttons()&Qt::LeftButton)
{
if (m_dragging)
{
QPoint delta = event->globalPos() - m_startPosition;
move(m_framePosition + delta);
}
}
QWidget::mouseMoveEvent(event);
}
void Widget::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
m_dragging = true;
m_startPosition = event->globalPos();
m_framePosition = frameGeometry().topLeft();
}
QWidget::mousePressEvent(event);
}
void Widget::mouseReleaseEvent(QMouseEvent *event)
{
m_dragging = false;
QWidget::mouseReleaseEvent(event);
}
Widget::~Widget()
{
delete ui;
}
为了方便学习,我把整个工程全部打包了,有需要的读者可以下载,下载地址如下:
http://download.csdn.net/download/qq78442761/9955784
相关知识
原文链接: Qt5.7 https://www.mcbbbk.com/newsview260732.html
| 上一篇: 从黑白格子到3D萌物美如画,虚拟... | 下一篇: 火影之最强白眼 |
推荐分享

- 1养玉米蛇的危害 33196
- 2原创 ... 10792
- 3猫咪声音翻译器 9866
- 4狗交配为什么会锁住?从狗狗生... 9032
- 5petpet generat... 7928
- 6我的狗老公李淑敏33——如何... 7905
- 7甜蜜的宠物我是看守专用宠物之... 7151
- 8中国境内禁养的十大鸟种,你知... 6405
- 9跨境宠物选品指南|全球TOP... 5932
- 10家养水獭多少钱一只正常 5827




