资源简介
vs2019+qt扩展模块 桌面精灵可以实现获取在桌面的位置,产生相应的变化,比如用鼠标将他拖到电脑屏幕边缘,会吸附到电脑边缘(其实就是换了一张图片,对窗口进行一些操作,比如动画、透明度调整),单击右键会出现菜单,点击菜单可以做一些事情。
代码片段和文件信息
#include “evle.h“
//记录上一时刻的坐标
QPoint lastPos;
int i = 1;
evle::evle(QWidget *parent)
: QWidget(parent)
{
label = new QLabel(this);
this->setAttribute(Qt::WA_TranslucentBackground true);
setWindowFlags(Qt::framelessWindowHint); //只是使窗口的标题栏隐藏
QPixmap pixw = QPixmap(“Resources/1.png“);
label->setPixmap(pixw);
label->resize(128128);
lastPos = this->pos();
}
evle::~evle() {}
void evle::mousePressEvent(QMouseEvent* event)
{
//pos()为局部坐标 globalPos()为全局坐标
if (event->button() == Qt::LeftButton)
{//左键拖动窗体
relativePos = this->pos() - event->globalPos();
}
if (event->button() == Qt::MidButton)
{
speak();
}
if (event->button() == Qt::RightButton)
{
QTextCodec* codec = QTextCodec::codecForName(“System“);
codec->setCodecForLocale(QTextCodec::codecForName(“UTF8“));
QAction* act_about = new QAction(codec->toUnicode(“关于“) this);
QAction* act_mainwindow = new QAction(codec->toUnicode(“打开主窗口“) this);
QAction* act_exit = new QAction(codec->toUnicode(“退出“) this);
Qobject::connect(act_about SIGNAL(triggered()) this SLOT(about_window()));
Qobject::connect(act_exit SIGNAL(triggered()) this SLOT(close()));
QMenu *menu = new QMenu(this);
menu->addAction(act_about); //添加菜单项1
menu->addAction(act_mainwindow);
menu->addAction(act_exit); //添加菜单项2
menu->exec(QCursor::pos());
}
}
void evle::mouseMoveEvent(QMouseEvent* event)//移动窗体
{
if (event->globalPos().x() < lastPos.x())
{
QPixmap pixw = QPixmap(“Resources/3.png“);
label->setPixmap(pixw);
}
else
{
QPixmap pixw = QPixmap(“Resources/2.png“);
label->setPixmap(pixw);
}
lastPos = event->globalPos();
this->move(event->globalPos() + relativePos);
}
void evle::enterEvent(QEvent*)
{
QRect rc;
QRect rect;
rect = this->geometry();
rc.setRect(rect.x() rect.y() rect.width() rect.height());
if (rect.top() < 0)
{
rect.setX(rc.x());
rect.setY(0);
move(rc.x() -2);
}
}
void evle::leaveEvent(QEvent*)
{
QRect rc;
QRect rect;
rect = this->geometry();
rc.setRect(rect.x() rect.y() rect.width() rect.height());
if (rect.top() < 0)
{
move(rc.x() -rc.height() + 2);
}
}
void evle::mouseReleaseEvent(QMouseEvent* event) //松开鼠标后自动贴边隐藏并且透明
{
QPropertyAnimation* pAnimation = new QPropertyAnimation(this “geometry“);
QDesktopWidget* pDesktopWidget = QApplication::desktop();//获得桌面
//窗口的宽和高
int tx = width();
int ty = height();
//QRect clientRect = desktopWidget->availableGeometry();得到相对于屏幕的绝对坐标
//QRect applicationRect = desktopWidget->screenGeometry();得到应用程序矩形
//获得屏幕宽度
int lx = pDesktopWidget->availableGeometry().width();
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-04-02 13:03 evle\
目录 0 2020-04-02 13:03 evle\evle\
文件 1070 2020-03-28 10:00 evle\evle.sln
文件 5724 2020-04-02 12:59 evle\evle\evle.cpp
文件 1106 2020-04-02 12:13 evle\evle\evle.h
文件 859 2020-04-01 20:41 evle\evle\evle.ui
文件 5194 2020-04-02 13:03 evle\evle\evle.vcxproj
文件 1608 2020-04-02 13:03 evle\evle\evle.vcxproj.filters
文件 168 2020-03-28 10:00 evle\evle\evle.vcxproj.user
文件 167 2020-03-28 10:00 evle\evle\main.cpp
目录 0 2020-04-01 21:37 evle\evle\Resources\
文件 13231 2013-08-02 14:19 evle\evle\Resources\1.png
文件 13244 2013-08-02 14:36 evle\evle\Resources\2.png
文件 13350 2013-08-02 14:36 evle\evle\Resources\3.png
文件 12253 2013-08-02 15:10 evle\evle\Resources\4.png
文件 14615 2020-04-01 20:29 evle\evle\Resources\4_2.png
文件 10318 2013-08-02 16:05 evle\evle\Resources\5.png
文件 16022 2013-08-02 16:00 evle\evle\Resources\6.png
文件 13349 2013-08-02 14:35 evle\evle\Resources\7.png
文件 19974 2020-04-01 21:37 evle\evle\Resources\8.png
文件 27317 2019-05-14 17:30 evle\evle\Resources\anniu.png
文件 695 2013-08-02 16:54 evle\evle\Resources\icon.png
文件 17551 2020-04-01 20:22 evle\evle\Resources\lazy.png
文件 13948 2013-08-02 14:43 evle\evle\Resources\shime10.png
文件 14448 2013-08-02 15:04 evle\evle\Resources\shime11.png
文件 12399 2013-08-02 15:12 evle\evle\Resources\shime13.png
文件 12253 2013-08-02 15:10 evle\evle\Resources\shime14.png
文件 14127 2013-08-02 15:26 evle\evle\Resources\shime15.png
文件 15218 2013-08-02 15:27 evle\evle\Resources\shime16.png
文件 18231 2013-08-02 15:28 evle\evle\Resources\shime17.png
文件 13718 2013-08-02 15:40 evle\evle\Resources\shime18.png
............此处省略31个文件信息
- 上一篇:统计计算-随机模拟法R语言
- 下一篇:wifi时钟.zip
相关资源
- 基于 QT5 百度语音API 图灵机器人API 的
- vert.x结合springboot开发mqtt服务,真实可
- QT实现视频监控开发画面分割
- qt usb通信
- OPENGL读取显示obj模型_VS2010
- 关于QT的数字时钟含闹钟
- 基于v4l2的qt视频实时显示
- Qt5.4编写的图书管理系统
- qt通讯录实验
- QT5.5 动态刷新tabview
- DynamicChart.zip
- 基于Qt的以串口接收的温度显示界面,
- TCC(Tiny C Compiler)0.9.26源码 原版和
- QT项目添加外部库详细步骤和
- TMS MQTT_v1.1.0.2.rar
- testRoll.7z
- Qt输入法事件 QInputMethodEvent
- 员工绩效管理系统最终版
- QT简易画板
- vsflexgrid官方 帮助文档chm
- 5个qt多线程
- Proteus8.9 VSM Studio WINAVR编译器仿真ATM
- Proteus8.9 VSM Studio WINAVR编译器仿真ATM
- QT 扫雷程序
- QT实现的类似QComplater可自定义匹配规
- QT5.5.1串口实现在线热拔插检测
- Qt编写的网络五子棋
- 原创 qt 组播实现的屏幕共享程序
- PyQt5高阶界面控件
- VS2012+LUA5.2+boost1.47.0环境搭建方法
评论
共有 条评论