) 全球头条:Qt项目DeskGirl开发_港澳制鞋网

全球头条:Qt项目DeskGirl开发

首页>资讯 > 正文
2023-06-01 11:07:44

来源:QT教程

正文

不能播放gif,太大了,给个静态图片吧,实际上桌面壁纸是动态的,人物也是动态的,可自定义桌面壁纸,有默认的数字时钟壁纸

无边框背景透明窗体

设置属性

this->setWindowFlags(Qt::FramelessWindowHint);      //去掉标题栏this->setAttribute(Qt::WA_TranslucentBackground);   //设置背景透明

设置窗体png

在主 Widget 上拖一个 Widge 控件,然后设置Widget的窗体,以 「qss」 的形式设置窗体的背景图


(资料图片)

ui->widget->setStyleSheet(QString("background-image:url(:/src/action1/%);").arg(1));因为要设置动态图,所以用一个定时器循环设置窗体的背景图

定时器

/*动态人物*/  QTimer* frameTimer;  frameTimer = new QTimer;  connect(frameTimer,SIGNAL(timeout()),this, SLOT(frame_refreshTime()));  frameTimer->start(500);

定时器循环设置窗体背景图

void Widget::frame_refreshTime(){    static int frame = 1;    frame = frame%4 + 1;    //qDebug()<<"frame:"<<frame;    if(status==0) {        ui->widget->setStyleSheet(QString("background-image:url(:/src/action1/%);").arg(frame));    }    else if(status==1){        ui->widget->setStyleSheet(QString("background-image:url(:/src/action2/%);").arg(frame));    }    else {        ui->widget->setStyleSheet(QString("background-image:url(:/src/action3/%);").arg(frame));    }}

这里 「status」 是人物状态,0喜,1怒,2哀

这样一个不规则窗体就设置完成了,加上小姐姐动态图组,nice

Setting设计

项目->右键->Add New->选择Qt->选择Qt Desiger Form->选择Widget UI是这样设计的

为什么是花花绿绿的呢,这个 「设置样式表」 ,直接copy我的就行

人物状态选项

这个直接绑定信号与槽,让主界面和setting界面进行数据传递 Setting界面定义信号,check按钮之后发送信号

signals:    //定义status发送信号,widget槽函数收收    void status_check_index(int index);
void Setting::slot_RadioButton_checket(int ButtonId){    //发送status信号    emit status_check_index(ButtonId);}

Widget绑定信号

/*应用菜单*/Setting* setting;setting = new Setting;//绑定设置的status信号connect(setting,SIGNAL(status_check_index(int)),this,SLOT(Setting_status_change(int)));复

这样就完成了两个窗体的交互

设置桌面壁纸

简单来说就是找到桌面Program Manager,给桌面发送0x52c消息,让它接触父子关系,然后将自己写好的窗口和它建立父子关系 SetParent

获取桌面句柄

这里直接封装成几个函数,然后调用,具体看源码

SendMessageToDesktop();   //发送消息,解除父子关系this->desktopWnd=findDesktopIconWnd();    //获取桌面句柄

建立父子关系

这里以单独的背景图片为例,没有数字时钟的

void Setting::on_select_pushButton_clicked(){    srcLabel->setParent(bkWidget);    srcLabel->setGeometry(0,0,1920,1080);    srcLabel->setScaledContents(true);         //是否缩放    srcPath =QFileDialog::getOpenFileName(this,QString::fromLocal8Bit("选择文件"),"",    QString::fromLocal8Bit("媒体文件( *.gif *.jpg *.png)"));    if(srcPath != "" && ((".jpg")||(".png")))//jpg,png    {        srcLabel->setPixmap(QPixmap(srcPath));        if(desktopWnd) //设置父窗体为桌面        {            SetParent((HWND)bkWidget->winId(), desktopWnd);            qDebug()<<"over";        }        bkWidget->setWindowFlags(Qt::FramelessWindowHint); //无边框        bkWidget->showFullScreen();                        //全屏        qDebug()<<"success";        return;    }

因为要显示图片。所以给bkWidget添加一个Qlabel,相关设置之后,就是将用户选择的图片路径给srcLabel去显示。

设置父窗体为桌面先判断是否找到桌面,然后再给桌面设置自己的Widget为它的父亲,这样就完成了桌面壁纸的设置

数字时钟壁纸

MyClock

这是自己重写的QWidget类 MyClock ,主要完成的是绘制问题,设置锚点,然后绘制,个中计算复杂,这里就不一一介绍,详情看源码

将MyClock设置到桌面

void Setting::on_apply_pushButton_clicked(){    if(desktopWnd) //设置父窗体为桌面    {        SetParent((HWND)LabWidget->winId(), desktopWnd);    }    LabWidget->setWindowFlags(Qt::FramelessWindowHint); //无边框    LabWidget->showFullScreen();  //全屏}

这里要无边框全屏显示,否则显示不全

动态壁纸

动态壁纸就是将与桌面建立父子关系的Widget显示视频,这个就需要视频解码,Qt自带的 QMediaPlayer 虽然也能解码,但是视频解码的种类拙荆见肘,我就记的可以解码一个.avi格式的视频 那如果想要显示mp4,WMV等等格式的视频

推荐「libvlc」

VLC是一个 「免费的开源跨平台多媒体播放器和框架」 ,可播放大多数多媒体文件以及 DVD,音频CD,VCD和各种流媒体协议。从技术上讲,它是一个软件包,可以处理计算机和网络上的媒体。它提供直观的 API和模块化架构,可轻松添加对新编解码器,容器格式和传输协议的支持。来自 VLC的大多数已知软件包是Windows,Linux和 OSX上常用的播放器。 ❞

【领 QT开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】

点击这里:

标签:

THE END
免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代港澳制鞋网的观点和立场。

相关热点

新华社电 上海市文化和旅游局近日发布《上海市密室剧本杀内容备案管理规定(征求意见稿)》,并截至12月8日面向社会公众广泛征求意见。这
2021-11-19 13:46:03
《中国证券报》17日刊发文章《备战2022 基金经理调仓换股布新局》。文章称,距离2021年结束仅剩一个多月,基金业绩分化明显。部分排名靠前
2021-11-19 13:46:03
交通运输部办公厅 中国人民银行办公厅 中国银行保险监督管理委员会办公厅关于进一步做好货车ETC发行服务有关工作的通知各省、自治区、直
2021-11-19 13:45:58
新华社北京11月17日电 题:从10月份市场供需积极变化看中国经济韧性新华社记者魏玉坤、丁乐读懂中国经济,一个直观的视角就是市场供需两端
2021-11-19 13:45:58
全国教育财务工作会议披露的消息称,2020年,中国国家财政性教育经费投入达4 29万亿元,占GDP总量的4 206%,我国国家财政性教育经费支出占G
2021-11-19 13:45:48
如果你也热爱“种草”,前方高能预警!让你心心念念、“浏览”忘返的网络平台,可能早已成为一块块“韭菜地”。近日,据《半月谈》报道,有...
2021-11-19 13:45:48
日前,工业和信息化部印发《“十四五”信息通信行业发展规划》(以下简称《规划》),描绘了未来5年信息通信行业的发展趋势。《规划》指出...
2021-11-19 13:45:40
本报讯(中青报·中青网记者 周围围)2021年快递业务旺季正式拉开帷幕。国家邮政局监测数据显示,仅11月1日当日,全国共揽收快递包裹5 69
2021-11-19 13:45:40
人民网曼谷11月17日电 (记者赵益普)17日上午,中国援柬埔寨第七批200万剂科兴新冠疫苗抵达金边国际机场。当天,柬埔寨政府在机场举行了
2021-11-19 13:45:35
金坛压缩空气储能国家试验示范项目主体工程一角受访者供图依托清华大学非补燃压缩空气储能技术,金坛压缩空气储能项目申请专利百余项,建立
2021-11-19 13:45:35
视觉中国供图42亿立方米据有关部门预计,今年山西煤炭产量有望突破12亿吨,12月份山西外送电能力将超过900万千瓦,今冬明春煤层气产量将达4
2021-11-19 13:44:34
14省份相继发布2021年企业工资指导线——引导企业合理提高职工工资今年以来,天津、新疆、内蒙古、陕西、西藏、山东、江西、山西、福建、四
2021-11-19 13:44:34
中新网客户端北京11月18日电 (记者 谢艺观)“一条路海角天涯,两颗心相依相伴,风吹不走誓言,雨打不湿浪漫,意济苍生苦与痛,情牵天下喜
2021-11-19 13:44:31
近日,交通运输部等三部门发布《关于进一步做好货车ETC发行服务有关工作的通知》。通知提到,对不具备授信条件的用户,商业银行可在依法合
2021-11-19 13:44:31
欧莱雅面膜陷优惠“年度最大”风波 涉及该事件集体投诉超6000人次美妆大牌双十一促销翻车?近日,因预售价格比双十一现货贵出66%,欧莱雅
2021-11-19 13:44:13
43 6%受访者会在工作两三年后考虑跳槽54 3%受访者认为跳槽对个人职业发展有利有弊如今对不少年轻人来说,想对一份工作“从一而终”不太容易
2021-11-19 13:44:13
超八成受访青年表示如有机会愿意开展副业 规划能力最重要64 4%受访青年指出做副业跟风心态最要不得如今,“身兼数职”已成为年轻人当中的
2021-11-19 13:44:01
发展氢能正当其时【科学随笔】氢能是一种二次能源,它通过一定的方法利用其他能源制取,具有清洁无污染、可储存、与多种能源便捷转换等优点
2021-11-19 13:44:01
“千杯不醉”的解酒“神药”能信吗?专家:网红“解酒药” 其实不算药俗话说,“酒逢知己千杯少”,酒一直是国人饭桌上至关重要的存在。尽...
2021-11-19 13:43:57
最新文章

相关推荐