Buy Me a Coffee? Your support is much appreciated!
PayPal Me: https://www.paypal.me/jiejenn/5
Venmo: @Jie-Jenn
Source Code:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTreeView
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QFont, QColor, QImage, QStandardItemModel, QStandardItem
class StandardItem(QStandardItem):
def __init__(self, txt='', image_path='', font_size=12, set_bold=False, color=QColor(0, 0, 0)):
super().__init__()
fnt = QFont('Open Sans', font_size)
fnt.setBold(set_bold)
self.setEditable(False)
self.setForeground(color)
self.setFont(fnt)
self.setText(txt)
if image_path:
image = QImage(image_path)
self.setData(image, Qt.DecorationRole)
class AppDemo(QMainWindow):
def __init__(self):
super().__init__()
self.resize(1200, 1200)
treeView = QTreeView()
treeView.setHeaderHidden(True)
treeView.header().setStretchLastSection(True)
treeModel = QStandardItemModel()
rootNode = treeModel.invisibleRootItem()
photos = StandardItem('My Photos', '', set_bold=True)
cat = StandardItem('Cats', './Images/cat.jpg', 14)
photos.appendRow(cat)
taipei = StandardItem('Taipei', './Images/taipei.jpg', 16)
photos.appendRow(taipei)
rootNode.appendRow(photos)
treeView.setModel(treeModel)
treeView.expandAll()
self.setCentralWidget(treeView)
app = QApplication(sys.argv)
demo = AppDemo()
demo.show()
sys.exit(app.exec_())