功能:
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:
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;
}
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_OBJECT
public:
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);
virtual void paintEvent(QPaintEvent *event);
QPixmap m_MainWidgetImage;
bool m_dragging;
QPoint m_startPosition;
QPoint m_framePosition;
QSystemTrayIcon m_systray;
Rose *rose;
};
#endif
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;
int Screen_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];
int rand_x_rose_2[5][2];
int rand_x_rose_3[5][2];
int rand_x_rose_4[5][2];
int rand_x_rose_5[5][2];
int crood_y_rose_1[20];
int crood_y_rose_2[5];
int crood_y_rose_3[5];
int crood_y_rose_4[5];
int crood_y_rose_5[5];
int RoseSpeed_Kind[10];
};
#endif