Qt实现全屏下玫瑰花(含详细注释)
功能:
1. 识别屏幕分辨率
2. 托盘程序
3.随机下玫瑰花
程序源码及素材下载:
http://pan.baidu.com/s/1ceH2wQ
IDE Qt Creator
先上图:
部分代码展示:
GBK.h
<span style="font-family:SimSun;font-size:18px;">#ifndef _QT_GBK_H
#define _QT_GBK_H#include <QString>
#include <QTextCodec>
#include <string>
using std::string;class GBK
{
public:// QString(Unicode) -> std::string (GBK)static string FromUnicode(const QString& qstr){QTextCodec* pCodec = QTextCodec::codecForName("gb2312");if(!pCodec) return ""; QByteArray arr = pCodec->fromUnicode(qstr);string cstr = arr.data();return cstr;}// std::string (GBK) -> QString(Unicode)static QString ToUnicode(const string& cstr){QTextCodec* pCodec = QTextCodec::codecForName("gb2312");if(!pCodec) return "";QString qstr = pCodec->toUnicode(cstr.c_str(), cstr.length());return qstr;}};#endif</span>
mainwidget.h
<span style="font-family:SimSun;font-size:18px;">#ifndef MAINWIDGET_H
#define MAINWIDGET_H#include <QWidget>
#include <QPixmap>
#include <QSystemTrayIcon>
#include <QPainter>
#include <QPoint>
#include <QMouseEvent>
#include <QMenu>
#include <QIcon>
#include <QMovie>
#include <QSound>#include "GBK.h"
#include "rose.h"namespace Ui {
class mainWidget;
}class mainWidget : public QWidget
{Q_OBJECTpublic:explicit mainWidget(QWidget *parent = 0);~mainWidget();virtual void mouseMoveEvent(QMouseEvent *event);virtual void mousePressEvent(QMouseEvent *event);virtual void mouseReleaseEvent(QMouseEvent *event);public slots:void OnExitBtn(); //隐藏程序,调用托盘void OnShowActive(); //托盘显示程序void SoundShow(const string filepath,bool loop);int OnSystemTrayClicked(QSystemTrayIcon::ActivationReason reason);int OnExitWindows();void OnClickHere(); // “点这里”相关处理private:Ui::mainWidget *ui;void closeEvent(QCloseEvent *event); //重写close按钮virtual void paintEvent(QPaintEvent *event);QPixmap m_MainWidgetImage;bool m_dragging; //是否正在拖动QPoint m_startPosition; //拖动开始前的鼠标位置QPoint m_framePosition; //窗体的原始位置QSystemTrayIcon m_systray; //托盘图标Rose *rose;};#endif // MAINWIDGET_H</span>
rose.h
<span style="font-family:SimSun;font-size:18px;">#ifndef ROSE_H
#define ROSE_H#include <QObject>
#include <QWidget>
#include <QLabel>
#include <QPixmap>
#include <QSize>
#include <QApplication>
#include <QDesktopWidget>
#include <QTimerEvent>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#include <QCloseEvent>class Rose : public QWidget
{Q_OBJECT
public:explicit Rose(QWidget *parent = 0);void GetScreenInfo(); //获得屏幕分辨率void closeEvent(QCloseEvent *event);int Screen_x; //屏幕x轴int Screen_y; //屏幕y轴signals:public slots:protected:void timerEvent(QTimerEvent *event);private:virtual void paintEvent(QPaintEvent *event);QLabel *rose_1[20];QLabel *rose_2[5];QLabel *rose_3[5];QLabel *rose_4[5];QLabel *rose_5[5];int rand_x_rose_1[20][2]; //rose1 20个的玫瑰花坐标 第二个为玫瑰的速度int rand_x_rose_2[5][2]; //rose2 5个的玫瑰花坐标 第二个为玫瑰的速度int rand_x_rose_3[5][2]; //rose3 5个的玫瑰花坐标 第二个为玫瑰的速度int rand_x_rose_4[5][2]; //rose4 5个的玫瑰花坐标 第二个为玫瑰的速度int rand_x_rose_5[5][2]; //rose4 5个的玫瑰花坐标 第二个为玫瑰的速度int crood_y_rose_1[20]; //rose_1 的y坐标int crood_y_rose_2[5]; //rose_2 的y坐标int crood_y_rose_3[5]; //rose_3 的y坐标int crood_y_rose_4[5]; //rose_4 的y坐标int crood_y_rose_5[5]; //rose_5 的y坐标int RoseSpeed_Kind[10]; //玫瑰的10种不同的速度};#endif // ROSE_H</span>
Qt实现全屏下玫瑰花(含详细注释)相关推荐
- 发现qq的mac输入法2.8,在终端全屏下输入不显示待选文字或单词
为什么80%的码农都做不了架构师?>>> 发现qq的mac输入法2.8的版本,在终端全屏下输入不显示待选文字或单词,不知道终端非全屏下是否显示待选单词,忘了测试,谁知道呢, 已 ...
- esc键退出全屏 vue_解决了VUE在浏览器全屏下监听不到Esc键盘事件
说明: 实测可以在谷歌.火狐.360 浏览器使用 解决了在浏览器全屏下监听不到键盘Esc事件 解决了取消全屏和全屏的同步问题,ESC按键下可以同步 以下是完整的代码, // data() { retu ...
- 解决VUE在浏览器全屏下监听不到Esc键盘事件
实测可以在谷歌.火狐.360 浏览器使用 解决了在浏览器全屏下监听不到键盘Esc事件 解决了取消全屏和全屏的同步问题,ESC按键下可以同步 以下是完整的代码, // data() {return {i ...
- html文件如何设置为桌面壁纸,怎样把文件里的图片设置为桌面背景时全部是全屏图?最好详细一点的。...
怎样把文件里的图片设置为桌面背景时全部是全屏图?最好详细一点的.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 怎样把文 ...
- jq苹果手机全屏下点击无效果_看剧、下视频、看小说,这一个app就可以~
推荐看剧.搜索.看小说的app那么多!!! 难道就没有一款可以满足所有需求的app吗? 当然有!!! 今天推荐的这款可以看剧.看小说,还能下载网页视频的浏览器,就可以满足你的所有需求. 有了它,你的手 ...
- QT制作全屏播放器以及出现的问题
使用QT做播放器使用widget::winid可以获取播放器组件的windows句柄并以命令行的方式调起另一个程序使用D3D将内存缓冲区的图像打在上面.但是在做全屏是出现了问题,如果让播放器组件自己独 ...
- 彩虹瓶【含详细注释】
2-9 彩虹瓶 (20分) 我的简而言之: 就是给你一串数字,然后呢,你通过在栈内的操作,控制谁进去之后什么时候出来,最好出来的顺序要按照1 2 3 4 -- 这个和出栈序列的合法性还有有点区别的啊 ...
- jq苹果手机全屏下点击无效果_苹果系统自带外挂?无需越狱也可录制动作脚本...
网络游戏开始流行起来之后,随之而来的是外挂的兴起,各式各样的外挂中有两种最为致命:物理外挂和系统自带外挂. 随着国内电竞行业和电竞直播的兴起,"物理外挂"出现在我们周围的频率也越来 ...
- linux下qt和wine,Ubuntu下安装wine详细介绍
Ubuntu安装wine一般使用两种方式,源码编译或者从网络源安装. 源码编译安装相对比较稳定,速度快.效率高,但是需要时间编译,相比一分钟的源安装,几十分钟的编译确实很长.源安装是别人已经帮你编译好 ...
最新文章
- tomcat关闭 异常报告
- Android获取手机内部存储和外部存储
- $.extend 的相关用法
- 服务提供者与服务消费者
- 适用于 ESXi 6.x 中的 OpenSLP 安全漏洞 (CVE-2019-5544) 的权宜措施 (76372)
- 2018年python工作好找吗-2018年IT行业薪资大揭秘:你拖后腿了吗?
- 安卓使用intent切换到同级窗口和子窗口,并从子窗口中获取返回数据
- 8051蜂鸣器程序c语言,蜂鸣器报警声C51程序
- layui icon服务器上显示不出来,关于layui的动态图标不显示的解决方法
- python扇贝每日一句api_【扇贝批量添加单词到词库】利用python调用扇贝API (oauth2)...
- 数据结构学习笔记-常用十大算法
- 今日简报 每日精选12条新闻简报 每天一分钟 知晓天下事 4月23日
- 图片转视频python/ffmpeg
- 【C#】SharpDevelop使用教程,C#写windows下第一个窗口程序,简单粗暴,初学者进,全图文,一看就明白
- Dockerfile 指令 VOLUME 介绍
- SRS_Audio_Sandbox注册码破解版+注册机+中文
- ORACLE查看表空间
- python2.7下载哪个_Python2.7.13下载安装全过程(Windows版)
- 教程| R语言:生存分析
- socket python 连接 java_linux 下 python 和 java, socket通讯问题。
热门文章
- 程序员,想搞事情?进来,就一句话的事!
- 如何解释营销能力与技术能力是正交的
- 对于内向、不善于社交的人来说,如何建立人脉?
- FEIM Studios 团队欢迎您加入
- 中国十大穷光蛋排行榜
- C++ 程序员自信心曲线图
- 经典面试题(17):以下代码将输出的结果是什么?
- java绑定click时间_JAVA面试之vue.js(一)
- linux同步数据库,Linux两台服务器mysql数据库同步
- 爆款入门 | 第 14 期微生物组-扩增子16S分析和可视化(线上/线下同时开课,2022.4)...