Python 向Qlistview的项目添加图标
直截了当地说,我想在Python 向Qlistview的项目添加图标,python,pyqt,icons,pyqt5,qlistview,Python,Pyqt,Icons,Pyqt5,Qlistview,直截了当地说,我想在Qlistview的项目中添加图标。我一直在尝试使用setData,但没有成功 代码: import os import sys from PyQt5 import QtCore, QtGui, QtWidgets class Widget(QtWidgets.QWidget): def __init__(self, parent=None): super(Widget, self).__init__(parent) iconroot
Qlistview
的项目中添加图标。我一直在尝试使用setData
,但没有成功
代码:
import os
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Widget(QtWidgets.QWidget):
def __init__(self, parent=None):
super(Widget, self).__init__(parent)
iconroot = os.path.dirname(__file__)
self.setFont(QtGui.QFont("Helvetica", 8, QtGui.QFont.Normal, italic=False))
lay = QtWidgets.QVBoxLayout(self)
self.listView = QtWidgets.QListView()
lay.addWidget(self.listView)
self.entry = QtGui.QStandardItemModel()
self.listView.setModel(self.entry)
self.listView.setSpacing(5)
for text in ("One", "two", "Three", "Four",
"Five etc.."):
it = QtGui.QStandardItem(text)
self.entry.appendRow(it)
it.setData(QtGui.QIcon(iconroot +'/images/flags'),QtCore.Qt.DecorationRole)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
我希望有这样的事情
试试看:
import os
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Widget(QtWidgets.QWidget):
def __init__(self, parent=None):
super(Widget, self).__init__(parent)
# iconroot = os.path.dirname(__file__)
self.setFont(QtGui.QFont("Helvetica", 8, QtGui.QFont.Normal, italic=False))
lay = QtWidgets.QVBoxLayout(self)
self.listView = QtWidgets.QListView()
lay.addWidget(self.listView)
self.entry = QtGui.QStandardItemModel()
self.listView.setModel(self.entry)
self.listView.setSpacing(5)
# for text in ("One", "two", "Three", "Four",
for i, text in enumerate(["One", "two", "Three", "Four", # +++
"Five etc.."]):
it = QtGui.QStandardItem(text)
self.entry.appendRow(it)
# it.setData(QtGui.QIcon(iconroot +'/images/flags'), QtCore.Qt.DecorationRole)
it.setData(QtGui.QIcon(os.path.join('images', 'bao{}.png'.format(i))), # +++
QtCore.Qt.DecorationRole)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())
图标的路径是什么?我自己发现,这是通往图标的路径。你指出的是一个打字错误,因此你的问题必须关闭,你应该自己删除它,我将投票关闭你的问题,因为它指向的是非主题。我删除了我自己解决的帖子,这是通往图标的路径。