Advertisement
Guest User

Untitled

a guest
Jan 20th, 2016
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.87 KB | None | 0 0
  1. from PySide.QtGui import *
  2. from PySide.QtCore import *
  3.  
  4.  
  5. class FileModel(QStandardItemModel):
  6.  
  7.     def __init__(self, toolData, parent=None):
  8.         super(FileModel, self).__init__(parent)
  9.         self.containers = []
  10.         self.headerLabels = ['file name']
  11.         self.dataDict = toolData
  12.         self.setUp()
  13.  
  14.     def setUp(self):
  15.         '''fill model with data'''
  16.        
  17.         self.clear()
  18.         for row, file_ in enumerate(self.dataDict['files']):
  19.             fileItem = QStandardItem(file_['filename'])
  20.             fileItem.setCheckable(True)
  21.             font = QApplication.font()
  22.             font.setPointSize(10)
  23.             fileItem.setFont(font)
  24.             self.setItem(row, 0, fileItem)
  25.  
  26.         self.setHorizontalHeaderLabels(self.headerLabels)
  27.  
  28.  
  29. class FileChoserView(QTableView):
  30.  
  31.     def __init__(self, parent=None):
  32.         super(FileChoserView, self).__init__(parent)
  33.         self.setSortingEnabled(True)
  34.         self.setEditTriggers(QAbstractItemView.NoEditTriggers)
  35.         self.horizontalHeader().setStretchLastSection(True)
  36.         self.setSelectionBehavior(QAbstractItemView.SelectRows)
  37.         self.setContextMenuPolicy(Qt.ActionsContextMenu)
  38.         horizontalHeader = self.horizontalHeader()
  39.         self.verticalHeader().hide()
  40.  
  41.     def selectionChanged(self, selected, deselected):
  42.         '''Check item when row is selected'''
  43.  
  44.         for i in selected.indexes():
  45.             self.model().itemFromIndex(i).setCheckState(Qt.Checked)
  46.  
  47.         for i in deselected.indexes():
  48.             self.model().itemFromIndex(i).setCheckState(Qt.Unchecked)
  49.  
  50.  
  51. if __name__ == '__main__':
  52.     import sys
  53.     app = QApplication([])
  54.     testData = {'files':[dict(filename='file_{}.zip'.format(i)) for i in xrange(10)]}
  55.  
  56.     w = FileChoserView()
  57.     model = FileModel(testData)
  58.     w.setModel(model)
  59.     w.show()
  60.     sys.exit(app.exec_())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement