AcfunQml
AcfunQml copied to clipboard
评论区富文本展示问题
Qt富文本原生不支持gif动图,只能显示第一帧,评论区如果要显示gif用AnimatedImage 会cpu很高,排版效果很差
- 评论富文本方案
- 1.先用TextArea,gif默认不能播放,给图片加上链接可以点击,点击后弹出窗口进行gif播放
- 2.看源码修改TextEdit的c++类实现富文本gif Qt5.12.3\5.12.3\Src\qtdeclarative\src\quick\items\qquicktextedit.cpp
- 3.改用QWebEngine网页渲染评论区,这样文章也能使用Web,缺点软件体积大,运行时占用一个浏览器资源。 会成为桌面大型应用的后续趋势?
方案1 先用TextArea,gif默认不能播放,给图片加上链接可以点击,点击后弹出窗口进行gif播放 相关问题楼层
方案1 先用TextArea,gif默认不能播放,给图片加上链接可以点击,点击后弹出窗口进行gif播放 相关问题楼层
使用qml的TextArea 展示html时发现网络图片会在第一次显示不出来,必须双击或改变窗口大小才显示出来,又或者相同的图片url第二次插入到TextArea里也能在首次显示出来。 在Repeater/ListView之类的用model的容器里放TextArea才有这个问题,可能是Qt的bug
Repeater {
id: repCmt
model: 5
delegate: TextArea {
width: parent
textFormat: Qt.RichText
persistentSelection: true
selectByMouse: true
readOnly: true
wrapMode: TextArea.Wrap
text:"<img src=\"https://static.yximgs.com/bs2/adminBlock/treasure-1598137811221-SKJNDStR.png\">"
}
}
这个问题的2个方案:
- TextArea 里的网络图片img都先自己下载好转成base64, 用<img src="data:image/png;base64,aaaaaaaaa>这种可能得以解决
- 网图和其他文本分开展示,目前评论的网图跟其他文本正好都是独立开,在评论的最后的, 用一个Column显示吧