// pythonBridge.js import { ref, onMounted } from 'vue'; export function usePythonBridge() { const bridge = ref(null); // 初始化 QWebChannel const initBridge = () => { new QWebChannel(qt.webChannelTransport, (channel) => { bridge.value = channel.objects.bridge; }); }; // 调用 Python 方法 const fetchDataConfig = (data) => { return new Promise((resolve, reject) => { if (!bridge.value) { reject(new Error('返回出错,请检查是否已连接到 Python')); return; } bridge.value.fetchDataConfig(data, function (result) { resolve(result); }); }); }; // 从 Python 获取数据 const getPythonData = (data) => { if (bridge.value) { bridge.value.stringToJs(data, function (result) { alert(result); }); } }; // 在组件挂载时初始化桥接 onMounted(initBridge); return { fetchDataConfig, getPythonData }; }