• 大小: 736KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-14
  • 语言: 其他
  • 标签: qt  vs  桌面精灵  

资源简介

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个文件信息

评论

共有 条评论