您的位置:首页 > 电视 >

Qt实现全屏下玫瑰花(含详细注释)

功能:

1. 识别屏幕分辨率


【资料图】

2. 托盘程序

3.随机下玫瑰花

IDE Qt Creator

先上图:

部分代码展示:

GBK.h

#ifndef _QT_GBK_H#define _QT_GBK_H#include #include #include 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

mainwidget.h

#ifndef MAINWIDGET_H#define MAINWIDGET_H#include #include #include #include #include #include #include #include #include #include #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

rose.h

#ifndef ROSE_H#define ROSE_H#include #include #include #include #include #include #include #include #include #include #include #include class Rose : public QWidget{Q_OBJECTpublic: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

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

点击这里:

标签:

相关阅读

精彩放送