/** * * @file FITKKeyMouseStates.h * @brief 键盘与鼠标按键状态声明 * @author BaGuijun (baguijun@163.com) * @date 2024-03-19 * */ #ifndef __FITKKeyMouseStates_H__ #define __FITKKeyMouseStates_H__ #include "FITKAppFrameworkAPI.h" #include #include namespace AppFrame { /** * @brief 键盘与鼠标按键状态声明 * @author BaGuijun (baguijun@163.com) * @date 2024-03-19 */ class FITKAppFrameworkAPI FITKKeyMouseStates { public: explicit FITKKeyMouseStates() = default; virtual ~FITKKeyMouseStates() = default; /** * @brief 记录键盘按键状态 * @param[i] key 键盘按键类型 * @param[i] p 是否按下,true 按下 * @author BaGuijun (baguijun@163.com) * @date 2024-03-19 */ void keyPressed(Qt::Key key, bool p); /** * @brief 获取键盘按键状态 * @param[i] key 按键类型 * @return true 按下 * @return false 抬起 * @author BaGuijun (baguijun@163.com) * @date 2024-03-19 */ bool keyPressed(Qt::Key key); /** * @brief 记录鼠标按键状态 * @param[i] button 键盘按键类型 * @param[i] p 是否按下 * @author BaGuijun (baguijun@163.com) * @date 2024-03-19 */ void mousePressed(Qt::MouseButton button, bool p); /** * @brief 获取鼠标按键状态 * @param[i] button 按键类型 * @return true 按下 * @return false 抬起 * @author BaGuijun (baguijun@163.com) * @date 2024-03-19 */ bool mousePressed(Qt::MouseButton button); /** * @brief 获取鼠标是否按下 * @return true 按下 * @return false 未按下 * @author libaojun (libaojunqd@foxmail.com) * @date 2024-05-09 */ bool isMousePressed(); /** * @brief 获取鼠标是否移动 * @return true 移动 * @return false 未移动 * @author libaojun (libaojunqd@foxmail.com) * @date 2024-05-09 */ bool isMouseMoved() const; /** * @brief 设置鼠标是否移动 * @param[i] m 是否移动 * @author libaojun (libaojunqd@foxmail.com) * @date 2024-05-09 */ void mouseMoved(const bool& m); private: /** * @brief 键盘按键点击状态,true 按下 * @author BaGuijun (baguijun@163.com) * @date 2024-03-19 */ QMap _keyStates; /** * @brief 鼠标按键点击状态,true 按下 * @author BaGuijun (baguijun@163.com) * @date 2024-03-19 */ QMap _mouseButtonStates; /** * @brief 鼠标是否移动标记 * @author libaojun (libaojunqd@Foxmail.com) * @date 2024-05-09 */ bool _mouseMoved{ false }; }; } #endif // !__GUISETTING_H__