hiroi-sora / Umi-OCR

OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。
MIT License
23.48k stars 2.39k forks source link

其他组件调用截图方法报错 #411

Closed PinelliaLogic closed 4 months ago

PinelliaLogic commented 4 months ago

image

hiroi-sora commented 4 months ago

请给出详细的代码截图,你是如何调用方法的那部分。上图 我看不出问题所在。

PinelliaLogic commented 4 months ago

image image

hiroi-sora commented 4 months ago

我大概懂了,你是不是另外创了一个 .qml 文件,然后在其中创建了 ScreenshotOCR 组件?

这是不可行的,ScreenshotOCR.qml 本身是一个 TabPageTabPage相当于一个标签页的根,必须由 PagesManager.qml 进行管理,自动生成、销毁,不能作为别的页面的子组件。

这里报错 callPy of undefined,本质上是 connector 未定义。该属性是由 PagesManager 自动初始化的。如果你手动创建一个 TabPage ,那么该属性未被定义。

如果你想在别处调用 ScreenshotOCR 标签页的截图方法,可以通过全局事件来调用:(需要先确保截图OCR标签页处于打开状态)

qmlapp.pubSub.publish( "<<screenshot>>" ) // 发送名为 <<screenshot>> 的全局事件

如果你想在自己的标签页内,进行截图并获取图片(不进行OCR),可以参照ScreenshotOCR的screenshot方法,调用全局函数qmlapp.imageManager.screenshot

PinelliaLogic commented 4 months ago

好的,感谢