如何在PyQt5的列表小部件中添加图像?

问题描述

tartube image which is written in pygtk

简而言之,我想获取的是缩略图和一些数据,如PyQt5的ListWidget中的图像上方所示。

我有缩略图的网址以及所有数据,例如标题,频道名称等。

我可以通过以下方法在列表小部件中获取标题

function isToday(date) {
    const today = new Date()
    return date.getDate() === today.getDate() &&
        date.getMonth() === today.getMonth() &&
        date.getFullYear() === today.getFullYear();
};

console.log(isToday(new Date("2020-09-10")))

该设计由Qt Designer创建,并使用pyuic5转换为python。

这是我在stackoverflow中的第一个问题。我也知道我应该共享代码,但是代码通常是由pyuic5生成的,其中只有listWidget(基于项目)。

谢谢。

解决方法

如果要将带有文本的图像放入QListWidget,则需要将带有文本的QIcon组合到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,**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_()

您将得到类似这样的内容:

Example

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...