簡體   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