Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PySide.QtGui import *
- from PySide.QtCore import *
- class FileModel(QStandardItemModel):
- def __init__(self, toolData, parent=None):
- super(FileModel, self).__init__(parent)
- self.containers = []
- self.headerLabels = ['file name']
- self.dataDict = toolData
- self.setUp()
- def setUp(self):
- '''fill model with data'''
- self.clear()
- for row, file_ in enumerate(self.dataDict['files']):
- fileItem = QStandardItem(file_['filename'])
- fileItem.setCheckable(True)
- font = QApplication.font()
- font.setPointSize(10)
- fileItem.setFont(font)
- self.setItem(row, 0, fileItem)
- self.setHorizontalHeaderLabels(self.headerLabels)
- class FileChoserView(QTableView):
- def __init__(self, parent=None):
- super(FileChoserView, self).__init__(parent)
- self.setSortingEnabled(True)
- self.setEditTriggers(QAbstractItemView.NoEditTriggers)
- self.horizontalHeader().setStretchLastSection(True)
- self.setSelectionBehavior(QAbstractItemView.SelectRows)
- self.setContextMenuPolicy(Qt.ActionsContextMenu)
- horizontalHeader = self.horizontalHeader()
- self.verticalHeader().hide()
- def selectionChanged(self, selected, deselected):
- '''Check item when row is selected'''
- for i in selected.indexes():
- self.model().itemFromIndex(i).setCheckState(Qt.Checked)
- for i in deselected.indexes():
- self.model().itemFromIndex(i).setCheckState(Qt.Unchecked)
- if __name__ == '__main__':
- import sys
- app = QApplication([])
- testData = {'files':[dict(filename='file_{}.zip'.format(i)) for i in xrange(10)]}
- w = FileChoserView()
- model = FileModel(testData)
- w.setModel(model)
- w.show()
- sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement