def initCells(self): """初始化单元格""" l = ctaTaskPool.taskPool.allTask.items() self.setRowCount(len(l)) row = 0 for name, task in l: cellTaskName = QtGui.QTableWidgetItem(name) cellTaskTime = QtGui.QTableWidgetItem(str(task.runTM)) cellTaskRunM = QtGui.QTableWidgetItem(task.runmode) cellStrCls = QtGui.QTableWidgetItem(task.setting.get('className')) buttonActive = TaskActiveButton(name) buttonParam = TaskParamButton(name) buttonDisplay = TaskDisplayButton(name) buttonLog = TaskLogButton(name) self.setItem(row, 0, cellTaskName) self.setItem(row, 1, cellStrCls) self.setItem(row, 2, cellTaskTime) self.setItem(row, 3, cellTaskRunM) self.setCellWidget(row, 4, buttonActive) self.setCellWidget(row, 5, buttonParam) self.setCellWidget(row, 6, buttonLog) self.setCellWidget(row, 7, buttonDisplay) self.buttonActiveDict[name] = buttonActive row += 1
def initUI(self): vbox1 = QtGui.QVBoxLayout() for x in self.l: fileName = "parameter_" + x['name'] + '.json' d = {} with open(fileName, 'r') as f: d = json.load(f) f.close() symbols = d['postoday'].keys() label = [u'策略名\持仓'] + symbols newTable = QtGui.QTableWidget(1, 3) newTable.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers) newTable.setMaximumHeight(60) newTable.setHorizontalHeaderLabels(label) vbox1.addWidget(newTable) newItem = QtGui.QTableWidgetItem(x['name']) newTable.setItem(0, 0, newItem) newItem = QtGui.QTableWidgetItem(str(d['postoday'][symbols[0]])) newTable.setItem(0, 1, newItem) newItem = QtGui.QTableWidgetItem(' ') newTable.setItem(0, 2, newItem) if len(symbols) == 2: newItem = QtGui.QTableWidgetItem(str( d['postoday'][symbols[1]])) newTable.setItem(0, 2, newItem) self.vbox = vbox1 self.setLayout(self.vbox)
def updateData(self, data): """更新数据""" if not self.inited: # 设置标题 self.setColumnCount(len(data)) self.setHorizontalHeaderLabels(data.keys()) # 新增数据 col = 0 for k, v in data.items(): cell = QtGui.QTableWidgetItem(unicode(v)) self.keyCellDict[k] = cell self.setItem(0, col, cell) col += 1 self.inited = True else: # 更新数据 for k, v in data.items(): cell = self.keyCellDict[k] cell.setText(unicode(v)) #cell.setBackgroundColor() # 调整表格宽度为自适应 self.resizeColumnsToContents() self.resizeRowsToContents()
def updateData(self, data): """更新数据""" if not self.inited: self.setColumnCount(len(data)) self.setHorizontalHeaderLabels(data.keys()) self.resizeColumnsToContents() col = 0 for k, v in data.items(): if k == 'vtSymbols': cell = QtGui.QTableWidgetItem('; '.join(v)) elif k == 'pos': poses = "" for sym in v: poses += sym + ":long:" + str( v[sym]["long"]) + ",short:" + str( v[sym]["short"]) + "; " cell = QtGui.QTableWidgetItem(poses) else: cell = QtGui.QTableWidgetItem(unicode(v)) self.keyCellDict[k] = cell self.setItem(0, col, cell) col += 1 self.inited = True else: for k, v in data.items(): cell = self.keyCellDict[k] if k == 'vtSymbols': cell.setText('; '.join(v)) elif k == 'pos': poses = "" for sym in v: poses += sym + ":long:" + str( v[sym]["long"]) + ",short:" + str( v[sym]["short"]) + "; " cell.setText(poses) else: cell.setText(unicode(v))
def updateData(self, data): """更新数据""" if not self.inited: self.setColumnCount(len(data)) self.setHorizontalHeaderLabels(data.keys()) col = 0 for k, v in data.items(): cell = QtGui.QTableWidgetItem(unicode(v)) self.keyCellDict[k] = cell self.setItem(0, col, cell) col += 1 self.inited = True else: for k, v in data.items(): cell = self.keyCellDict[k] cell.setText(unicode(v))
def updateData(self, data): """更新数据""" self.data = data if not self.inited: if 'run_id' in data.keys(): self.setEditTriggers(self.DoubleClicked) self.setColumnCount(len(self.lables)) self.setFixedHeight(85) self.setHorizontalHeaderLabels(self.lables) self.resizeColumnsToContents() self.resizeRowsToContents() col = 0 cell = QtGui.QTableWidgetItem(unicode(data['run_id'])) self.resizeColumnsToContents() self.keyCellDict['run_id'] = cell self.setItem(0, col, cell) col += 1 cell = QtGui.QTableWidgetItem(unicode(data['strategy_file'])) self.resizeColumnsToContents() self.keyCellDict['strategy_file'] = cell self.setItem(0, col, cell) col += 1 cell = QtGui.QTableWidgetItem(unicode(data['start_date'])) self.resizeColumnsToContents() self.keyCellDict['start_date'] = cell self.setItem(0, col, cell) col += 1 cell = QtGui.QTableWidgetItem(unicode(data['end_date'])) self.resizeColumnsToContents() self.keyCellDict['end_date'] = cell self.setItem(0, col, cell) col += 1 """ cell = QtGui.QCalendarWidget() self.resizeColumnsToContents() self.resizeRowsToContents() self.keyCellDict['start_date'] = cell self.setCellWidget(0, col, cell) col += 1 cell = QtGui.QCalendarWidget() self.resizeColumnsToContents() self.resizeRowsToContents() self.keyCellDict['end_date'] = cell self.setCellWidget(0, col, cell) col += 1 """ cell = QtGui.QTableWidgetItem( unicode(data['stock_starting_cash'])) self.resizeColumnsToContents() self.keyCellDict['stock_starting_cash'] = cell self.setItem(0, col, cell) col += 1 cell = QtGui.QComboBox() cell.addItem("1d") cell.addItem("1m") cell.addItem("tick") self.resizeColumnsToContents() self.keyCellDict['frequency'] = cell self.setCellWidget(0, col, cell) cell.currentIndexChanged.connect(self.sendChangeSignal2) col += 1 cell = QtGui.QComboBox() cell.addItem("current_bar") cell.addItem("next_bar") self.resizeColumnsToContents() self.keyCellDict['matching_type'] = cell self.setCellWidget(0, col, cell) cell.currentIndexChanged.connect(self.sendChangeSignal3) col += 1 cell = QtGui.QTableWidgetItem(unicode(data['benchmark'])) self.resizeColumnsToContents() self.keyCellDict['benchmark'] = cell self.setItem(0, col, cell) col += 1 cell = QtGui.QTableWidgetItem(unicode(data['slippage'])) self.resizeColumnsToContents() self.keyCellDict['slippage'] = cell self.setItem(0, col, cell) col += 1 cell = QtGui.QTableWidgetItem( unicode(data['commission_multiplier'])) self.resizeColumnsToContents() self.keyCellDict['commission_multiplier'] = cell self.setItem(0, col, cell) col += 1 cell = QtGui.QTableWidgetItem( unicode(data['margin_multiplier'])) self.resizeColumnsToContents() self.keyCellDict['margin_multiplier'] = cell self.setItem(0, col, cell) col += 1 else: self.setEditTriggers(self.NoEditTriggers) self.setColumnCount(len(data)) self.setFixedHeight(85) self.setHorizontalHeaderLabels(data.keys()) self.resizeColumnsToContents() col = 0 for k, v in data.items(): cell = QtGui.QTableWidgetItem(unicode(v)) self.keyCellDict[k] = cell self.setItem(0, col, cell) col += 1 self.inited = True else: for k, v in data.items(): cell = self.keyCellDict[k] cell.setText(unicode(v)) self.cellChanged.connect(self.sendChangeSignal)