import sys
from PyQt5 import QtGui, QtWidgets, QtCore
class CustomQWidget (QtWidgets.QWidget):
def __init__ (self, parent = None):
super(CustomQWidget, self).__init__(parent)
self.titleLabel = QtWidgets.QLabel()
self.titleLabel.setStyleSheet('background-color: #839B97; font-size:24px;')
self.descriptionLabel = QtWidgets.QLabel()
self.descriptionLabel.setWordWrap(True)
self.descriptionLabel.setStyleSheet('background-color: #CFD3CE;')
self.vBoxLayout = QtWidgets.QVBoxLayout()
self.vBoxLayout.addWidget(self.titleLabel, 0)
self.vBoxLayout.addWidget(self.descriptionLabel, 1)
self.vBoxLayout.setSpacing(0)
self.iconQLabel = QtWidgets.QLabel()
self.iconQLabel.setMinimumSize(200, 200)
self.iconQLabel.setMaximumSize(200, 200)
self.hBoxLayout = QtWidgets.QHBoxLayout(self)
self.hBoxLayout.addWidget(self.iconQLabel, 0)
self.hBoxLayout.addLayout(self.vBoxLayout, 1)
def setTitle(self, text):
self.titleLabel.setText(text)
def setDescription(self, text):
self.descriptionLabel.setText(text)
def setIcon(self, imagePath):
self.iconQLabel.setPixmap(QtGui.QPixmap(imagePath).scaled(
200, 200, QtCore.Qt.KeepAspectRatio))
class MainWindow (QtWidgets.QMainWindow):
def __init__ (self):
super().__init__()
self.listWidget = QtWidgets.QListWidget(self)
self.setCentralWidget(self.listWidget)
myList = [
('Название 1',
'''Какое-то описание 1.
Я хочу создать что-то наподобие такого (визуально) используя python \
и библиотеку pyside2 или pyside6, это должен быть список с картинкой, \
названием и описанием (у меня есть все эти данные). К сожалению я не нашел \
как это можно примерно реализовать, можете подсказать какой элемент тут \
лучше использовать и с чего начать. (Прошу прощения за картинку это макет \
был сделан на коленке, элементы должны быть одинаковы что очевидно)''',
'lena.jpg'),
('Название 2',
'Какое-то описание 2',
'boy.jpg'),
('Название 3',
'Какое-то описание 2',
'im.png')
]
for title, description, icon in myList:
customQWidget = CustomQWidget()
customQWidget.setTitle(title)
customQWidget.setDescription(description)
customQWidget.setIcon(icon)
item = QtWidgets.QListWidgetItem(self.listWidget)
item.setSizeHint(customQWidget.sizeHint())
self.listWidget.addItem(item)
self.listWidget.setItemWidget(item, customQWidget)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.resize(700, 500)
w.show()
sys.exit(app.exec_())
这个网站几乎应有尽有。你总是从这里开始寻找。
你不必在膝盖上做任何事情。你应该总是展示你已经做了什么,并且善于说出你想做什么和你不能做什么。
鉴于这是您的第一个问题,我将向您展示一种可能的解决方案来解决您的想法。
为PySide2安装导入并试一试。