Qt实现全屏下玫瑰花(含详细注释)
生活随笔
收集整理的這篇文章主要介紹了
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实现全屏下玫瑰花(含详细注释)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++轻松写基于UDP的远程控制
- 下一篇: C/C++之win98扫雷外挂基础篇