由於大多數熟悉QML的人都知道,QML Image
中沒有內置的「刷新」功能。使用更新功能擴展QML圖像類型
我想創建一個新的QML類型,例如RefreshableImage
來緩解這個問題,而不是訴諸於改變源代碼,我覺得它是一個醜陋的黑客,因爲它滲入到模型 - 視圖關係的所有層中,並且這種切換行爲是不自然的。此外,在Image
上設置不同的source
會破壞可能已設置的任何綁定(這實際上是問題的核心:我想要一個可更新的圖像來維護其綁定,並與QML隔離)。我知道我需要調用一些信號來實際刷新圖像,這很好。
我很難找到一種方式來擴展Qt自己的Image
,以便我可以強制它重新加載它的源文件。我想避免編寫一個完整的組件,其中大部分很難複製Image
以添加一個函數。有沒有辦法擴展一個內置的組件,就像我腦海中所想的那樣?
小筆記:
- 到外部環境原因,我僅限於Qt的5.5。
- 我們以
source
的形式使用底層圖像對象的UUID,QQuickImageProvider
使用該UUID來獲取實際的QImage
。因此,我不想在更新圖像時更改此設置。
爲什麼你需要用相同的'source'等來更新'Image'?這是不是相同的圖像? – folibis
@folibis技術上是的,但底層的數據已經改變。我們使用QML ImageProviders從我們的數據結構中提供QML到QML。我們使用的id是我們系統中圖像的uuid,所以我們可以從該uuid的其他地方檢索實際的對象。爲了簡單起見,我們只是重複使用這個uuid。 – rubenvb
好的,你應該在問題中指定這個。我想這很重要。 – folibis