python-3.x - 如何在 PyQt5 的列表小部件中添加图像?
问题描述
简单地说,我想要实现的是缩略图和一些数据,如图像上方显示的 PyQt5 中 ListWidget 中的一个项目。
我有缩略图的 url 和所有数据,如标题、频道名称等。
通过这样做,我可以在列表小部件中获取标题:
titles = ['title1','title2']
self.listWidget.addItems(titles)
该设计由 Qt Designer 创建并使用 pyuic5 转换为 python。
这是我在stackoverflow中的第一个问题。我也知道我应该共享代码,但代码通常由 pyuic5 生成,其中只有 listWidget(基于项目)。
提前致谢。
解决方案
如果你想在你的 QListWidget 中放置带有文本的图像,你需要将 QIcon 与 Text 组合成一个 QListWidgetItem ,如下所示:
from PyQt5 import QtGui, QtCore, QtWidgets
import os
icon_path = os.getcwd() + "\icon.jpg"
titles = ['title1','title2']
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, *args, **kwargs):
QtWidgets.QMainWindow.__init__(self, *args, **kwargs)
self.setupUi(self)
#add list of strings
self.listWidget.addItems(titles)
#create QIcon
icon = QtGui.QIcon(icon_path)
#Create the row with Icon + Text
item = QtWidgets.QListWidgetItem(icon, "Hello this is a test")
#set size of the item
size = QtCore.QSize()
size.setHeight(100)
size.setWidth(400)
item.setSizeHint(size)
#Put the item into the widget
self.listWidget.addItem(item)
if __name__ == "__main__":
app = QtWidgets.QApplication([])
window = MainWindow()
window.show()
app.exec_()
你会得到这样的东西:
推荐阅读
- python - AMD Ryzen 5950X 在 MKL 2020.0 和 MKL_DEBUG_CPU_TYPE=5 下运行缓慢
- pine-script - 参考 MA 交叉前的柱线,在交叉前绘制三角形 50 根柱线
- html - 重新定位行移动
- arrays - 将“void *(struct thread_args *)”传递给“void * _Nullable (* _Nonnull)(void * _Nullable)”类型参数的不兼容指针类型
- spring - 在 SCG 中将 SCLB 与多个服务器列表一起使用
- mysql - 使用python使用mysql.connector传输数据时出现MySQL连接错误
- deep-learning - 通过数据增强创建更多数据或对现有数据应用随机转换之间有区别吗?
- postgresql - 关键字 FUNCTION 是什么意思?
- java - 等于表达式中的整数运算
- docker - AlpineOS 上的 Nginx 配置命令