コード例 #1
0
ファイル: fileschart.py プロジェクト: halbbob/dff
class STATCHART(QWidget):
  def __init__(self):
    #super(QWidget, self).__init__()
    QWidget.__init__(self)
    self.setupModel()
    self.setupViews()

                   
  def setupModel(self):
    self.model = QtGui.QStandardItemModel(8, 2, self)
    self.model.setHeaderData(0, QtCore.Qt.Horizontal, QtCore.QVariant("Label"))
    self.model.setHeaderData(1, QtCore.Qt.Horizontal, QtCore.QVariant("Quantity"))


  def setupViews(self):
    self.vbox = QtGui.QVBoxLayout()
    self.setLayout(self.vbox)
    splitter = QtGui.QSplitter()
    table = QtGui.QTableView()
    self.pieChart = PieView()
    splitter.addWidget(table)
    splitter.addWidget(self.pieChart)
    splitter.setStretchFactor(0, 0)
    splitter.setStretchFactor(1, 1)
    
    table.setModel(self.model)
    self.pieChart.setModel(self.model)
    
    self.selectionModel = QtGui.QItemSelectionModel(self.model)
    table.setSelectionModel(self.selectionModel)
    self.pieChart.setSelectionModel(self.selectionModel)
    
    table.horizontalHeader().setStretchLastSection(True)
    self.vbox.addWidget(splitter)


  def decode(self, typestat):
    self.model.removeRows(0, self.model.rowCount(QtCore.QModelIndex()),
                          QtCore.QModelIndex())

    row = 0
    i = 0
    for mtype, count in typestat.iteritems():
      color = random.randint(0, 0xffffffff)
      self.model.insertRows(row, 1, QtCore.QModelIndex())

      self.model.setData(self.model.index(row, 0, QtCore.QModelIndex()),
                         QtCore.QVariant(mtype))
      self.model.setData(self.model.index(row, 1, QtCore.QModelIndex()),
                         QtCore.QVariant(float(count)))
      self.model.setData(self.model.index(row, 0, QtCore.QModelIndex()),
                         QtCore.QVariant(QtGui.QColor(color)),
                         QtCore.Qt.DecorationRole)
      row += 1
コード例 #2
0
ファイル: fileschart.py プロジェクト: halbbob/dff
 def setupViews(self):
   self.vbox = QtGui.QVBoxLayout()
   self.setLayout(self.vbox)
   splitter = QtGui.QSplitter()
   table = QtGui.QTableView()
   self.pieChart = PieView()
   splitter.addWidget(table)
   splitter.addWidget(self.pieChart)
   splitter.setStretchFactor(0, 0)
   splitter.setStretchFactor(1, 1)
   
   table.setModel(self.model)
   self.pieChart.setModel(self.model)
   
   self.selectionModel = QtGui.QItemSelectionModel(self.model)
   table.setSelectionModel(self.selectionModel)
   self.pieChart.setSelectionModel(self.selectionModel)
   
   table.horizontalHeader().setStretchLastSection(True)
   self.vbox.addWidget(splitter)