繁体   English   中英

从Q_INVOKABLE函数或插槽中更改QQuickImage源

[英]Change QQuickImage source from within Q_INVOKABLE function or slot

我有一个非常简单的任务,主要是因为QML和QT的QML和C ++分离,所以绕了圈。 因此,除了询问特定的QT问题外,我还需要一般性建议以了解应使用哪些QT和QML函数来实现用例。

用例:

QQuickControls UI允许用户选择图像。 该图像显示在UI中。 当用户单击“处理”按钮时,应用程序将找到边。

我的问题是; 如何覆盖当前显示的图像? 我应该使用Q_INVOKABLE函数吗? 还是信号或插槽? 我下面的代码创建了UI,允许用户选择图像(并显示图像),并在单击“处理”按钮时生成边缘图像。 它只是不显示新的边缘图像,因为我不知道如何在QT / QQuickControls2中实现这一点。

任何有关如何在QT中实施此操作的建议将不胜感激。

我们有什么:

  • QML UI,带有用于图像的占位符和用于触发新图像的按钮。
  • C ++ ImageProcessor QML类型,用于从OpenCV Mat生成新图像。

最简单的解决方案是:

请注意,还有其他一些解决方案,可以使用QQuickFramebufferObjectQQuickpainteditemQAbstractVideoSurface进行更动态的渲染, QQuickFramebufferObject解决方案在图像非静态等情况下值得努力。

PS我也建议您重命名该问题,只要它不是真正如何从QML执行C ++代码,而是如何制作与QML兼容的图像并实际呈现它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM