【发布时间】:2020-01-04 14:47:30
【问题描述】:
我想通过 QT5 中的 Firestore URI 显示照片。我可以设置图像路径,但 QT5 对 URI 进行编码并将 %2F 转换为“/”,这会导致 firestore-URI 不正确。
该项目是为 python3 和 pyqt5 编写的。我已经尝试使用 QUrl 对象及其函数将其转换为 .url()、.toString()、.toDisplayString()。
与
urllib.request.urlretrieve(uri, path)
我可以下载照片,但我想直接从 firestore 路径显示它而不将其保存到磁盘。
QML
Row {
anchors.horizontalCenter: parent.horizontalCenter
height: 128
spacing: 16
Image {
source: root.image
anchors.bottom: parent.bottom
}
}
Python
url = QtCore.QUrl(user['photo']).toDisplayString()
print("user url: ", user['photo'])
print("QUrl: ", url)
messagebox.setProperty('image', user['photo'])
结果
user url: https://firebasestorage.googleapis.com/v0/b/projectx-835b4.appspot.com/o/users%2FNTb2Wz2%2Fprofilepicture%2F1234.jpg?alt=media&token=3d3b25c4-78e1-48a9-a311
QUrl: https://firebasestorage.googleapis.com/v0/b/projectx-835b4.appspot.com/o/users%2FNTb2Wz2%2Fprofilepicture%2F1234.jpg?alt=media&token=3d3b25c4-78e1-48a9-a311
file:///home/tux/projectsx/content/ThankYouView.qml:112:21: QML Image: Error transferring https://firebasestorage.googleapis.com/v0/b/projectx-835b4.appspot.com/o/users/NTb2Wz2/profilepicture/1234.jpg?alt=media&token=3d3b25c4-78e1-48a9-a311 - server replied: Bad Request
【问题讨论】:
-
发布答案而不是指向评论。
-
嘿丹尼尔。很高兴听到您找到了解决问题的方法。正如@eyllanesc 所说,您可以将解决方案发布为答案而不是您的问题吗? Stack Overflow 鼓励自我回答,这是帮助他人和赢得声誉的好方法。
-
@FrankvanPuffelen 谢谢你,下次我会做的。这是我在 Stack Overflow 上的第一篇文章 :-)
-
@Daniel现在就可以做,这样您就可以帮助社区的其他成员