QT厘米秀

教你做QT厘米秀

前言

去年寒假自学了qt,又刚好赶上过年,于是乎头脑发热,打算做一个烟花送给家人,也好装装逼,当时找不到一张背景透明的烟花GIF图,要么就得上淘宝画几十块买图,这我可接受不了,于是乎,我又学起了GIF抠图,可惜抠图技术不到家,说好的烟花图最后也只是扣了一个球。哈哈哈,是不是格局小了。直至今日,一个学期过去了,当我再次重操旧业时,发现qt我已经忘的差不多了,寒假的小作品我具体忘记怎么做了。呜呜呜。。。都是没做笔记,没做备份惹的祸。又得重新百度和学习了。痛定思痛,我就写下了这篇文章。话不多说,上视频。。。

小作品展示

寒假自己整的小作品

关键代码

包含以下必要的头文件

#include <QMovie>
#include <QMouseEvent>
#include <QMediaPlayer>
#include <QMediaPlaylist>

显示图片,其实就只是在widget.ui里边添加了label这么一个控件而已

	QMovie  * movie  = new  QMovie( ":/new/prefix1/as.gif" );
	ui -> label -> setMovie(movie);
	movie -> start();

实验效果如下

(厘米秀)步骤一

既然是厘米秀,那就不能有边框,背景也要透明,下面这两条代码就实现这个功能

   this->setWindowFlags(Qt::FramelessWindowHint);//边框不可见
   this->setAttribute(Qt::WA_TranslucentBackground);//背景变透明

再来看一下效果

(厘米秀)步骤二

可以看出边框不见了,背景色也透明了,但是图片它移动不了,那么接下来就该解决这个问题了。这里就要重写鼠标类的两个事件,一个是鼠标移动事件,一个是鼠标右击事件。我们通过鼠标左键来移动图片,通过右键点击来关闭显示窗口,不然每次都得从任务栏关闭,违反装逼到底的原则,看代码。。。

void Widget::mousePressEvent(QMouseEvent *event)
{
    if(event->button() == Qt::RightButton)
    {
        this->close();
    }
    if(event->button() == Qt::LeftButton)
    {
        cazhi=event->globalPos()-this->frameGeometry().topLeft();
    }
}

void Widget::mouseMoveEvent(QMouseEvent *event)
{
//	  下面注释掉的两行是什么用的?因为这样子可以方便大家做对比,可以看我提供的链接,里边老师解释的很清楚
//    this->move(event->x(),event->y());
//    this->move(event->globalX(),event->globalY());
      this->move(event->globalPos()-cazhi);
}

好了,再来看一下效果

(厘米秀)步骤三

现在图片显示出来了,也能够移动了,但是,这还不够,我们要给它注入灵魂,那就是音乐,嗯。

		//单曲播放
        player = new QMediaPlayer;
    	//player>setMedia(QUrl::fromLocalFile("C:/Users/Administrator/Desktop/QT_Centimeter_show/untitled/aaa.mp3"));
         player->setMedia(QUrl::fromLocalFile(".\\aaa.mp3"));
       // player->setMedia(QUrl::fromLocalFile("C:\\Users\\Administrator\\Desktop\\linux_part\\aaa.mp3"));
        player->setVolume(30);
        player->play();

这里边大家可以用绝对路径和相对路径,如果是自己实验的话可以是绝对路径,如果后面打包发给被人或者打包成软件建议用相对路径,相对路径的当前路径是在build-untitled-Desktop_Qt_5_11_1_MinGW_32bit-Debug这么一个文件夹下面,把音频文件放在这个文件夹里边,相对路径就写“./xxx.mp3”.

最终效果演示:

(厘米秀)步骤四

GIF抠图

这个是我自己拍的视频,有一些坑,寒假踩过这回又踩一遍,把操作流程做成视频,以后就不怕忘记了,视频还有一首歌的时间,我就把后面一节发不出来了,有需要的小伙伴可以下载我上传的资料包,包括之前扣好的好几张背景透明的GIF,源码和完整视频,在制作的过程有什么问题大家也可以跟我说,一起进步。

截图教程_2

参考链接

视频教程

资料包

源码,视频,GIF图下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值