QT桌面宠物+桌面大鹅(1)

作者记录了用Qt实现类似DesktopGoose软件的过程,通过QThread控制鹅的移动速度和位置更新,计划加入播放音乐和时间提醒功能。目前实现了鹅的基础移动,使用随机位置和速度控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

记录一下自己想做的一个小项目的过程,主要是看到了有一款桌面软件很有意思,名叫 Desktop Goose,他应该是使用Unity去做的,我也想有一个自己的要是能够将它的功能复现并且还能加上播放音乐,根据时间提示我该去干嘛了等功能就更好了。话不多说,说干就干,再写这篇文章的时候,已经能将大鹅的基本功能进行实现。

阶段一

阶段一先实现大鹅的基础功能,能够每经过一段事件进行移动,并且会有一定的速度,要能够在之后进行速度控制,并且在移动时不能拖动。
我使用Qt 的 QThread 类来创建新线程来控制鹅在桌面上的移动速度,这样方便之后让我的大鹅能够拥有自己的速度。并且能够在该线程中每隔一段事件移动一下大鹅的位置。

该线程的.h代码:

#ifndef GOOSETHREAD_H
#define GOOSETHREAD_H
#include <QRect>
#include <QThread>
#include <QTimer>
#include <cstdlib>
#include <ctime>
#include <QGuiApplication>
#include <QScreen>
#include <QApplication>
#include <qmath.h>
extern QPoint currentPosition;
class GooseThread : public QThread
{
   
    Q_OBJECT

public:
    explicit GooseThread(QObject *parent = nullptr);
    void run() override;
    void onTimer();
    bool isMoving()const;


signals:
    void moveGoose(int x, int y);
    //void enableMouseTracking(bool enabled);

private:
    int m_speed;
    int m_moveInterval = 50;
    int screenWidth;
    int screenHeight;
    bool m_isMoving; // 添加标志变量
    int m_pauseInterval = 30000;
    int counter = 0;
    QRect screenRect;
    QTimer *m_timer;
};
#endif // GOOSETHREAD_H

该线程的.c文件代码

#include 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值