import sys
import os
from PyQt4 import QtGui, QtCore
def __init__(self, datain, parent=None, *args):
""" datain: a list where each item is a row
"""
self.listdata = datain
return len(self.listdata)
def data(self, index, role):
s
= QtCore.
QSize(250,
200) if index.isValid() and role == QtCore.Qt.DecorationRole:
return QtGui.
QIcon(QtGui.
QPixmap(self.
listdata[index.
row()]).
scaled(s
)) if index.isValid() and role == QtCore.Qt.DisplayRole:
return QtCore.
QVariant(os.
path.
splitext(os.
path.
split(self.
listdata[index.
row()])[-1])[0]) else:
"""docstring for MyListView"""
def __init__(self):
super(MyListView, self).__init__()
# show in Icon Mode
crntDir = "/Users/userName/Pictures/"
# create table
list_data = []
philes = os.listdir(crntDir)
for phile in philes:
if phile.endswith(".png") or phile.endswith("jpg"):
list_data.append(os.path.join(crntDir, phile))
lm = MyListModel(list_data, self)
self.setModel(lm)
self.show()
if __name__ == '__main__':
window = MyListView()
window.show()
window.raise_()
sys.exit(app.exec_())
import sys
import os
from PyQt4 import QtGui, QtCore
class MyListModel(QtCore.QAbstractListModel):
def __init__(self, datain, parent=None, *args):
""" datain: a list where each item is a row
"""
QtCore.QAbstractListModel.__init__(self, parent, *args)
self.listdata = datain
def rowCount(self, parent=QtCore.QModelIndex()):
return len(self.listdata)
def data(self, index, role):
s = QtCore.QSize(250, 200)
if index.isValid() and role == QtCore.Qt.DecorationRole:
return QtGui.QIcon(QtGui.QPixmap(self.listdata[index.row()]).scaled(s))
if index.isValid() and role == QtCore.Qt.DisplayRole:
return QtCore.QVariant(os.path.splitext(os.path.split(self.listdata[index.row()])[-1])[0])
else:
return QtCore.QVariant()
class MyListView(QtGui.QListView):
"""docstring for MyListView"""
def __init__(self):
super(MyListView, self).__init__()
# show in Icon Mode
self.setViewMode(QtGui.QListView.IconMode)
crntDir = "/Users/userName/Pictures/"
# create table
list_data = []
philes = os.listdir(crntDir)
for phile in philes:
if phile.endswith(".png") or phile.endswith("jpg"):
list_data.append(os.path.join(crntDir, phile))
lm = MyListModel(list_data, self)
self.setModel(lm)
self.show()
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = MyListView()
window.show()
window.raise_()
sys.exit(app.exec_())
To copy to clipboard, switch view to plain text mode
Bookmarks