# Qflow
**Repository Path**: ChaoYouAi/Qflow
## Basic Information
- **Project Name**: Qflow
- **Description**: Qflow 是一个本人原创基于 Python 开发的轻量级可视化自动化流程编辑器。用户通过简单拖拽节点、连接连线的方式,构建复杂的桌面自动化任务,源码开放、绿色单文件、离线不联网、不需要独显!它集成了 图像识别 (OpenCV)、键鼠模拟、音频检测 以及 逻辑控制,非常适合用于办公自动化或重复性任务处理。
- **Primary Language**: Python
- **License**: GPL-3.0
- **Default Branch**: main
- **Homepage**: https://github.com/Qwejay/Qflow
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2025-12-22
- **Last Updated**: 2026-01-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Qflow 1.6 - 可视化桌面自动化工具(Desktop Automation Tool)
无需编程基础,通过节点拖拽实现强大的桌面自动化流程。
## 📖 简介 (Introduction)
**Qflow** 是一个本人原创基于 Python 开发的轻量级可视化自动化流程编辑器。用户通过简单拖拽节点、连接连线的方式,构建复杂的桌面自动化任务,源码开放、绿色单文件、离线不联网、不需要独显!
它集成了 **图像识别 (OpenCV)**、**键鼠模拟**、**音频检测** 以及 **逻辑控制**,非常适合用于办公自动化或重复性任务处理。
## ✨ 核心功能 (Features)
* **🎨 可视化编辑器**:支持节点拖拽、无限画布缩放/平移、框选、撤销/重做。
* **👁️ 视觉感知**:
* **图像寻找**:集成 OpenCV,支持模板匹配和特征匹配(SIFT/AKAZE),支持多尺度搜索。
* **静止检测**:监控屏幕特定区域是否静止(例如判断加载是否完成)。
* **🖱️ 键鼠控制**:
* 支持鼠标点击、移动、拖拽、滚动。
* 支持键盘文本输入及组合键(快捷键)操作。
* **🔊 音频触发**:能够检测系统音量峰值(Windows),实现"听到声音执行操作"。
* **🧠 逻辑控制**:
* 包含循环 (Loop)、序列 (Sequence)、延时 (Wait)。
* 支持变量 (Set/Get) 和条件分流 (Switch),可构建复杂的业务逻辑。
* **🛠️ 便捷工具**:
* 内置截图工具,直接截取屏幕目标作为节点参数。
* 支持多种主题切换(Dark/Light/Hacker)。
* 全局快捷键启停。
## 📋 更新日志 (Changelog)
### v1.6
* **新增绑定窗口节点**:所有操作都可以绑定到用户选定的窗口中,确保后续操作在目标窗口内进行。
* **新增程序控制节点**:
* **🚀 打开程序**:支持启动外部应用程序
* **⚓ 绑定窗口**:可精确绑定特定窗口,实现更稳定的窗口内操作
* **界面优化**:
* 移除了 Hacker 主题,保留 Dark 和 Light 主题
* 优化了节点颜色配置,新增窗口节点专用颜色
* **功能增强**:
* 日志系统重构,简化了日志级别显示
* 端口连接增强,新增 success/fail 端口支持
* **稳定性提升**:
* 改进了 DPI 缩放处理
* 优化了窗口检测算法,提高了准确性
## ⚙️ 安装与运行 (Installation)
### 环境要求
* Python 3.8+
* Windows (音频检测功能依赖 Windows API,其他功能可在 macOS/Linux 运行但需调整部分代码)
### 步骤
1. **克隆仓库**
```bash
git clone https://github.com/Qwejay/Qflow.git
cd Qflow
```
2. **安装依赖**
建议使用虚拟环境:
```bash
pip install -r requirements.txt
```
*注意:如果没有安装 `opencv-python`,程序仍可运行,但高级图像识别功能受限。*
3. **运行程序**
```bash
python main.py
```
## 🎮 使用说明 (Usage)
### 界面概览
* **左侧工具栏**:包含所有可用节点,按类别分组(逻辑、动作、视觉)。
* **中间画布**:主要工作区。右键点击画布也可呼出节点菜单。
* **右侧属性面板**:点击任意节点,在此处配置详细参数(如点击坐标、图片阈值、循环次数等)。
* **底部日志**:显示当前的运行状态和错误信息。
### 快捷键 (Hotkeys)
| 操作 | 快捷键 |
| :--- | :--- |
| **启动流程** | ` + 1` (默认) |
| **停止流程** | ` + 2` (默认) |
| **删除节点** | `Delete` |
| **撤销** | `Ctrl + Z` |
| **重做** | `Ctrl + Y` |
| **多选节点** | 按住鼠标左键拖拽框选 |
### 快速开始
1. 拖入一个 **Start (开始)** 节点。
2. 拖入一个 **Image (找图)** 节点。
3. 点击找图节点,在右侧属性面板点击 "📸 截取",框选屏幕上的目标。
4. 将 Start 的 `out` 端口连接到 Image 的 `in` 端口。
5. 拖入一个 **Mouse (鼠标)** 节点,设置为点击操作,连接 Image 的 `found` 端口。
6. 点击顶部 "▶ 启动" 或按 `Alt+1` 运行。
## 📦 依赖库说明
* **tkinter**:构建 GUI 界面。
* **pyautogui**: 实现鼠标和键盘的模拟控制。
* **opencv-python (cv2)**: 提供强大的图像识别算法。
* **pycaw / comtypes**: 用于 Windows 系统下的音频会话捕捉。
* **pynput**: 用于监听全局快捷键。
## ⚠️ 免责声明
本工具仅供学习和个人办公辅助使用。请勿用于开发违反游戏服务条款的脚本或恶意软件。作者不对使用本工具造成的任何后果负责。
## 📄 License
MIT License