как показано на снимке, я хочу добавить соответствующие цветные значки для элементов в listwidget, например, синий значок для blue.png и т. д. Как я могу это сделать?
и после того, как я перетащу элементы из доступных текстур в выбранные текстуры, в этом виджете также должен появиться значок.
if __name__ == "__main__":
ui_obj = TextureSwatcherUI()
files = []
for i in os.listdir("Q:/...../tex_source/"):
files.append(i)
list_item = QListWidgetItem(i, ui_obj.available_textures)
list_item.setIcon("Q:/...../tex_source/red.png")
Это фрагмент, в котором я пытался получить все файлы и добавить их в свой виджет, теперь мне также нужно добавить соответствующие значки рядом с ними.
@G.M. я знаю, что это может быть простой метод, но я новичок в этом, и мне нужно использовать его в качестве одной из моих задач, пытаясь использовать его с помощью python, но он выдает ошибки QtGui, не найденные, когда я использую этот "listItem.setIcon (QtGui.QIcon())", если вы можете помочь мне с этим, буду очень благодарен.
Тогда, пожалуйста, отредактируйте свой вопрос, чтобы показать свой код и то, что вы уже пробовали.
@G.M. Я добавил необходимый фрагмент кода
Я создаю один минимальный пример, чтобы показать, как вы можете добавить значок в QListWidgetItem
.
Вы должны создать один QListWidgetItem
и установить для него один значок, имя (текст) и т. д., а затем добавить его в QListWidget
.
вам не нужно было добавлять их с помощью цикла for
.
import sys
from PySide6.QtWidgets import QApplication,QListWidget,QListWidgetItem
from PySide6.QtGui import QIcon
def main():
app = QApplication(sys.argv)
listWidget = QListWidget()
#Resize width and height
listWidget.resize(300,120)
icon1 = QIcon("/home/parisa/ListWidget/check.png");
listWidget.addItem(QListWidgetItem(icon1,"Item 1"));
icon2 = QIcon("/home/parisa/ListWidget/crossout.png");
listWidget.addItem(QListWidgetItem(icon2,"Item 2"));
listWidget.addItem(QListWidgetItem("Item 3"));
listWidget.addItem(QListWidgetItem("Item 4"));
listWidget.setWindowTitle('This is Minimal Example')
listWidget.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Результат:
Можно ли добавлять иконки без Pyside? Поскольку я собираюсь использовать его в различных версиях майя, а pyside поддерживает не все из них, поэтому могут возникнуть некоторые конфликты.
@KartikeySinha да, просто импортируйте QApplication,QListWidget,QListWidgetItem
и QIcon
так, как вы знаете. код будет работать