def initCells(self): """初始化单元格""" algoEngine = self.algoEngine l = self.algoEngine.getAllAlgoParams() self.setRowCount(len(l)) for row, d in enumerate(l): cellSpreadName = QtWidgets.QTableWidgetItem(d['spreadName']) cellAlgoName = QtWidgets.QTableWidgetItem(d['algoName']) spinBuyPrice = StBuyPriceSpinBox(algoEngine, d['spreadName'], d['buyPrice']) spinSellPrice = StSellPriceSpinBox(algoEngine, d['spreadName'], d['sellPrice']) spinShortPrice = StShortPriceSpinBox(algoEngine, d['spreadName'], d['shortPrice']) spinCoverPrice = StCoverPriceSpinBox(algoEngine, d['spreadName'], d['coverPrice']) spinMaxOrderSize = StMaxOrderSizeSpinBox(algoEngine, d['spreadName'], d['maxOrderSize']) spinMaxPosSize = StMaxPosSizeSpinBox(algoEngine, d['spreadName'], d['maxPosSize']) comboMode = StModeComboBox(algoEngine, d['spreadName'], d['mode']) buttonActive = StActiveButton(algoEngine, d['spreadName']) self.setItem(row, 0, cellSpreadName) self.setItem(row, 1, cellAlgoName) self.setCellWidget(row, 2, spinBuyPrice) self.setCellWidget(row, 3, spinSellPrice) self.setCellWidget(row, 4, spinCoverPrice) self.setCellWidget(row, 5, spinShortPrice) self.setCellWidget(row, 6, spinMaxOrderSize) self.setCellWidget(row, 7, spinMaxPosSize) self.setCellWidget(row, 8, comboMode) self.setCellWidget(row, 9, buttonActive) buttonActive.signalActive.connect(comboMode.algoActiveChanged) self.buttonActiveDict[d['spreadName']] = buttonActive
def loadCalendar(self): """读取日历""" self.clearContents() row = 0 totalRow = self.rowCount() # 如果有则打开 try: with open(CALENDAR_FILEPATH, 'r') as f: reader = csv.DictReader(f) for d in reader: cellDate = QtWidgets.QTableWidgetItem(d['date']) cellDescription = QtWidgets.QTableWidgetItem(d['description']) if row >= totalRow: self.insertRow(row) self.setItem(row, 0, cellDate) self.setItem(row, 1, cellDescription) row = row + 1 # 如果没有该文件则创建 except IOError: f = open(CALENDAR_FILEPATH, 'w') f.close()
def initCells(self): """初始化单元格""" algoEngine = self.algoEngine l = self.algoEngine.getAllAlgoParams() for d in l: self.insertRow(0) cellSpreadName = QtWidgets.QTableWidgetItem(d['spreadName']) cellAlgoName = QtWidgets.QTableWidgetItem(d['algoName']) cellNetPos = QtWidgets.QTableWidgetItem('0') spinBuyPrice = StBuyPriceSpinBox(algoEngine, d['spreadName'], d['buyPrice']) spinSellPrice = StSellPriceSpinBox(algoEngine, d['spreadName'], d['sellPrice']) spinShortPrice = StShortPriceSpinBox(algoEngine, d['spreadName'], d['shortPrice']) spinCoverPrice = StCoverPriceSpinBox(algoEngine, d['spreadName'], d['coverPrice']) spinMaxOrderSize = StMaxOrderSizeSpinBox(algoEngine, d['spreadName'], d['maxOrderSize']) spinMaxPosSize = StMaxPosSizeSpinBox(algoEngine, d['spreadName'], d['maxPosSize']) comboMode = StModeComboBox(algoEngine, d['spreadName'], d['mode']) buttonActive = StActiveButton(algoEngine, d['spreadName']) self.setItem(0, 0, cellSpreadName) self.setItem(0, 1, cellAlgoName) self.setItem(0, 2, cellNetPos) self.setCellWidget(0, 3, spinBuyPrice) self.setCellWidget(0, 4, spinSellPrice) self.setCellWidget(0, 5, spinCoverPrice) self.setCellWidget(0, 6, spinShortPrice) self.setCellWidget(0, 7, spinMaxOrderSize) self.setCellWidget(0, 8, spinMaxPosSize) self.setCellWidget(0, 9, comboMode) self.setCellWidget(0, 10, buttonActive) buttonActive.signalActive.connect(spinBuyPrice.algoActiveChanged) buttonActive.signalActive.connect(spinSellPrice.algoActiveChanged) buttonActive.signalActive.connect(spinShortPrice.algoActiveChanged) buttonActive.signalActive.connect(spinCoverPrice.algoActiveChanged) buttonActive.signalActive.connect( spinMaxOrderSize.algoActiveChanged) buttonActive.signalActive.connect(spinMaxPosSize.algoActiveChanged) buttonActive.signalActive.connect(comboMode.algoActiveChanged) self.buttonActiveDict[d['spreadName']] = buttonActive self.posCellDict[d['spreadName']] = cellNetPos
def addCell(self, name, row, col, color, alignment=None): """新增单元格""" cell = QtWidgets.QTableWidgetItem() self.setItem(row, col, cell) self.cellDict[name] = cell if color: cell.setForeground(QtGui.QColor(color)) if alignment: cell.setTextAlignment(alignment) else: cell.setTextAlignment(QtCore.Qt.AlignCenter)