ScreenLockDetector/QUICKSTART.md

134 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 快速入门指南
## 5分钟快速上手
### 第一步:编译项目
```bash
cd qt_screan_lock
./build.sh
```
### 第二步:运行应用
```bash
./run.sh
```
### 第三步:测试锁屏检测
1. 应用运行后,你会看到一个带有动态动画的窗口
2.`Ctrl + Alt + L``Super + L` 锁定屏幕
3. 观察动画是否停止
4. 解锁屏幕,动画应该自动恢复
### 第四步Deepin OS 用户特别测试
如果你使用的是 Deepin OS可以运行专门的测试脚本
```bash
./test_deepin.sh
```
这个脚本会自动检测 Deepin DDE 环境并提供详细的测试指导。
更多 Deepin OS 相关信息,请参考:[DEEPIN_SUPPORT.md](DEEPIN_SUPPORT.md)
## 预期效果
### 屏幕解锁时
- ✅ 窗口显示彩色动态动画
- ✅ 旋转的圆圈和波浪效果
- ✅ 状态显示 "UNLOCKED" 和 "ENABLED"
- ✅ 帧数持续增加
### 屏幕锁定时
- ✅ 动画立即停止
- ✅ 显示 "PAINTING DISABLED (Screen Locked)"
- ✅ 状态显示 "LOCKED" 和 "DISABLED"
- ✅ 帧数停止增加
## 命令速查
```bash
# 清理并重新编译
rm -rf build && ./build.sh
# 查看编译输出
./build.sh 2>&1 | tee build.log
# 运行并保存日志
./run.sh 2>&1 | tee app.log
# 仅编译(不清理)
cd build && make -j$(nproc)
# 直接运行(假设已编译)
./build/bin/ScreenLockDemo
```
## 常见问题
### Q: 提示 "Qt5 directory not found"
**A:** 修改 `CMakeLists.txt` 第16行设置正确的Qt5路径
```cmake
set(Qt5_DIR "/your/qt5/path/lib/cmake/Qt5")
```
### Q: 运行时提示找不到 Qt 库
**A:** 使用 `run.sh` 脚本运行,或手动设置:
```bash
export LD_LIBRARY_PATH=$HOME/sdk/qt-5.15.2/lib:$LD_LIBRARY_PATH
```
### Q: 锁屏检测不工作
**A:**
1. 检查控制台输出,确认 DBus 连接状态
2. 确保在支持的桌面环境下运行GNOME/KDE/XFCE/Deepin DDE
3. 对于 Deepin OS运行 `./test_deepin.sh` 进行完整诊断
4. 对于 GNOME尝试手动测试 `qdbus org.gnome.ScreenSaver`
5. 对于 Deepin检查 `dbus-send --session --dest=com.deepin.dde.lockFront`
### Q: 警告 "Failed to connect to any screen lock detection service"
**A:** 这表示当前桌面环境可能不支持标准的DBus锁屏接口。应用会继续运行但锁屏自动检测功能将不可用。你仍然可以使用手动控制按钮测试Paint事件的停止功能。
## 核心代码位置
想要修改或学习特定功能?直接查看这些文件:
- **锁屏检测逻辑**: `src/screenlockdetector.cpp` 第75-170行
- **Paint事件控制**: `src/customwidget.cpp` 第88-137行
- **动画绘制效果**: `src/customwidget.cpp` 第139-277行
- **主界面逻辑**: `src/mainwindow.cpp` 第143-179行
## 下一步
- 📖 阅读完整文档:`README.md`
- 🔧 自定义动画效果:修改 `customwidget.cpp`
- 🚀 添加更多桌面环境支持:扩展 `screenlockdetector.cpp`
- 🎨 调整UI界面修改 `mainwindow.cpp`
## 测试清单
完成以下测试确保应用正常工作:
- [ ] 应用成功编译
- [ ] 应用成功启动并显示窗口
- [ ] 可以看到动态动画效果
- [ ] 锁屏后动画停止
- [ ] 解锁后动画恢复
- [ ] 状态信息正确显示
- [ ] 帧数统计正常工作
- [ ] 手动控制按钮可用
- [ ] (Deepin OS) 运行 `./test_deepin.sh` 通过所有检查
全部通过?恭喜!🎉 应用已正常运行!
## 技术支持
遇到问题?
1. 查看控制台输出的详细日志
2. 检查 `README.md` 中的"故障排除"部分
3. 确认系统满足所有依赖要求
祝使用愉快!