这是一个基于Qt 6.10和PySide6开发的全屏叠加式白板应用,专为PPT演示设计,可以在PPT播放时叠加绘制,支持多种绘图工具和PPT翻页联动功能。
- PPT叠加使用:透明背景,可直接在PPT上绘制
- 悬浮窗工具:可拖动的工具面板,包含各种绘图工具
- 形状绘制:支持画笔、直线、矩形、圆形、椭圆等形状
- 翻页清屏:PPT翻页时自动清空绘图内容
- 橡皮擦双击交互:橡皮擦模式下双击显示清屏按钮
pip install pyside6pyside6-uic ui/mainui.ui -o ui/Ui_mainui.pypython main.py- 退出全屏:点击悬浮窗的"退出"按钮或按下
Esc键 - 悬浮窗拖动:拖动悬浮窗的空白区域可以移动位置
- 画笔:自由绘制,快捷键
P - 直线:绘制直线,快捷键
L - 矩形:绘制矩形,快捷键
R - 圆形:绘制圆形,快捷键
C - 椭圆:绘制椭圆,快捷键
O - 橡皮擦:擦除绘制内容,快捷键
E
- 形状绘制:点击并拖动鼠标,松开后完成绘制
- 自由绘制:按住鼠标并拖动,实时绘制线条
- 橡皮擦:按住鼠标并拖动,使用白色线条覆盖原有内容
- 颜色选择:点击颜色按钮,在弹出的对话框中选择颜色
- 粗细调节:点击粗细按钮,输入1-20之间的数值设置线条粗细
- 上一页:点击"PPT上一页"按钮或按下
Left/Up键 - 下一页:点击"PPT下一页"按钮或按下
Right/Down键
- 每次PPT翻页时,绘图内容会自动清空
- 自动清屏:PPT翻页时自动清屏
- 手动清屏:在橡皮擦模式下双击绘图区域,然后点击"清屏"按钮
- 清屏按钮:双击后显示,3秒后自动隐藏
EasyWriteWhiteBoard/
├── main.py # 主程序文件
├── ui/
│ ├── mainui.ui # UI设计文件
│ └── Ui_mainui.py # 转换后的Python模块
└── README.md # 项目说明文档
- 使用
Qt.WA_TranslucentBackground实现主窗口透明 - 绘图内容绘制在QPixmap上,实现无遮挡叠加
- 独立的QWidget窗口,使用
Qt.Tool标志实现悬浮效果 - 自定义鼠标事件处理,支持窗口拖动
- 使用QPainter和QPixmap实现高性能绘图
- 支持实时预览和多种绘图模式
- 通过
QGuiApplication::postEvent模拟系统级键盘事件 - 翻页时自动清空绘图缓存
- 监听鼠标双击事件,在橡皮擦模式下显示清屏按钮
- 使用定时器实现清屏按钮的自动隐藏
- PPT窗口激活:使用PPT翻页功能时,需要确保PPT窗口处于激活状态
- 清屏按钮:清屏按钮仅在橡皮擦模式下双击绘图区域才会显示
- 悬浮窗拖动:只能拖动悬浮窗的空白区域,点击按钮不会触发拖动
- 性能优化:绘图内容存储在QPixmap中,避免重复绘制导致的卡顿
- Windows:支持Windows 10/11
- macOS:支持macOS 10.14及以上版本
- PPT软件:支持Microsoft PowerPoint、WPS演示等常见演示软件
- 绘图区域:
drawing_board - 清屏按钮:
clearBtn - 悬浮窗:
FloatToolWidget - 工具按钮:
btnPen,btnLine,btnRect,btnCircle,btnEllipse,btnEraser - 功能按钮:
btnPPTPrev,btnPPTNext,btnExit
- 可以通过修改
DrawingBoard类扩展绘图功能 - 可以通过修改
FloatToolWidget类扩展工具面板功能 - 可以通过修改
MainWindow类扩展主窗口功能
- 检查PySide6是否正确安装
- 检查UI文件是否成功转换为Python模块
- 确保PPT窗口处于激活状态
- 检查键盘快捷键是否被其他程序占用
- 检查绘图工具是否正确选择
- 检查颜色和粗细设置是否合适
- 确保当前处于橡皮擦模式
- 确保双击的是绘图区域,而不是悬浮窗或其他控件
MIT License 一个正在开发中的,专为大型触摸屏幕或电子白板教学而制作的手写批注程序