def createLabel(self, text, color): label = QLabel(text) font = label.font() font.setPixelSize(12) label.setFont(font) label.setAlignment(Qt.AlignCenter) label.setStyleSheet("color: " + color) return label
def setupHeader(self): header = QLabel() header.setText("<b>Transaction Details</b>") font = header.font() font.setPointSize(16) header.setFont(font) self.layout.addWidget(header) self.transactionLabel = QLabel() self.setTransactionLabelText() self.layout.addWidget(self.transactionLabel)
class TitleWidget(QWidget): """ TitleWidget holds a title. And paints the background with a gradient. """ TitleHeight = 20 def __init__(self, title=None): super(TitleWidget, self).__init__() if sys.platform.startswith("darwin"): color1 = QColor(230, 230, 230, 255) color2 = QColor(177, 177, 177, 255) gradient = QLinearGradient() gradient.setStart(0, 0) gradient.setFinalStop(0, TitleWidget.TitleHeight) gradient.setColorAt(0, color1) gradient.setColorAt(1, color2) brush = QBrush(gradient) palette = QPalette() palette.setBrush(QPalette.Background, brush) self.setPalette(palette) self.setAutoFillBackground(True) self.setMaximumHeight(TitleWidget.TitleHeight) self.setMinimumHeight(TitleWidget.TitleHeight) self.titleLabel = QLabel("", parent=self) font = self.titleLabel.font() font.setPixelSize(11) self.titleLabel.setFont(font) self.titleLabel.setAlignment(Qt.AlignCenter) self.titleLabel.setText(title) layout = QVBoxLayout() layout.setSpacing(0) layout.setContentsMargins(0, 0, 0, 0) layout.addWidget(self.titleLabel) self.setLayout(layout) def setText(self, title): self.title = title self.titleLabel.setText(self.title)
def __init__(self, program, parent=None): QWidget.__init__(self, parent) # Variables self._program = program # Controls lbl_program = QLabel(program.name) font = lbl_program.font() font.setBold(True) font.setPointSize(14) lbl_program.setFont(font) # Sizer layout = QVBoxLayout() layout.addWidget(lbl_program) layout.addLayout(self._initUI()) layout.addStretch() self.setLayout(layout)
def addDetector(self, key, detector): if key in self._tabs: raise ValueError('Detector with key %s already added' % key) clasz = detector.__class__ wdg_detector = get_widget_class(clasz)() wdg_detector.setValue(detector) wdg_detector.setReadOnly(self._readonly) self._widgets[key] = wdg_detector lbl_class = QLabel(clasz.__name__) lbl_class.setAlignment(Qt.AlignRight) font = lbl_class.font() font.setItalic(True) lbl_class.setFont(font) layout = QVBoxLayout() layout.addWidget(lbl_class) layout.addWidget(wdg_detector, 1) widget = QWidget() widget.setLayout(layout) index = self._wdg_tab.addTab(widget, key) self._tabs[key] = index
class SymbolWort(QWidget): def __init__(self): QWidget.__init__(self) self.setWindowTitle("Symbol-Worte") self.thread=MyWorker(self) self.thread.start() self.thread.calculator.calculationDone.connect(self.calculationDone) self.initUI() def about(self): QMessageBox.information(self,u"Über Symbol-Worte",u"Symbol-Worte ist ein kleines, zum Spaß entwickeltes, Programm. Es nutzt die Open-Source Entwicklungsumgebung Python (www.python.org) und PySide (Qt-Schnittstelle). Es ist unter GPL v.3 veröffentlicht. Entwickelt von Peter Waldert.") def update(self): text=self.lineEdit.text() if text.lower() != self.responseLabel.text().lower(): self.thread.startCalculation(text) def calculationDone(self,ok): if ok: self.responseLabel.setText(self.thread.calculator.result) else: self.responseLabel.setText(u"Keine Treffer") self.updateTable(self.thread.calculator.resultElements) def updateAuto(self,checked): if checked: self.lineEdit.textEdited.connect(self.update) else: self.lineEdit.textEdited.disconnect(self.update) def updateMaxLength(self,checked): if checked: self.lineEdit.setMaxLength(10) else: self.lineEdit.setMaxLength(100) def setupTable(self): self.tableWidget.setColumnCount(3) self.tableWidget.setHorizontalHeaderLabels(["OZ","Sym","Name"]) self.tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows) self.tableWidget.setSelectionMode(QTableWidget.SingleSelection) self.tableWidget.setEditTriggers(QTableWidget.NoEditTriggers) self.tableWidget.setAlternatingRowColors(True) def updateTable(self,elements): self.tableWidget.clearContents() self.tableWidget.setRowCount(len(elements)) row=0 for element in elements: self.tableWidget.setItem(row,0,QTableWidgetItem(str(element.atomicNumber))) self.tableWidget.setItem(row,1,QTableWidgetItem(elements[row].symbol)) self.tableWidget.setItem(row,2,QTableWidgetItem(elements[row].name)) row+=1 self.tableWidget.resizeColumnsToContents() def initUI(self): wordLabel=QLabel("&Wort:") responseLabel=QLabel("Symbol-Wort:") progressLabel=QLabel("Rechen-Fortschritt:") self.lineEdit=QLineEdit() self.updateButton=QPushButton("&Berechnen") self.autoUpdate=QCheckBox("&Auto-Berechnung") self.responseLabel=QLabel() wordLabel.setBuddy(self.lineEdit) self.tableWidget=QTableWidget() self.progressView=ProgressView() self.disableMaxLengthAction=QAction("Zeichenmaximum (Achtung!)",self) self.disableMaxLengthAction.setCheckable(True) self.disableMaxLengthAction.toggled.connect(self.updateMaxLength) self.disableMaxLengthAction.setChecked(True) self.setupTable() self.progressView.setProgress(self.thread.calculator.progress) self.progressView.abortButton.setIcon(QIcon.fromTheme("process-stopp",QIcon("Abort.png"))) self.progressView.abortButton.setToolTip("Stoppe die Berechnung") self.lineEdit.setValidator(QRegExpValidator(QRegExp("[A-Za-z]+"))) self.lineEdit.setToolTip("Nur Zeichen von A-Z") self.lineEdit.setContextMenuPolicy(Qt.ActionsContextMenu) self.lineEdit.addAction(self.disableMaxLengthAction) self.responseLabel.setSizePolicy(QSizePolicy.Preferred,QSizePolicy.Fixed) self.responseLabel.setFrameStyle(QFrame.StyledPanel|QFrame.Sunken) self.aboutButton=QPushButton(u"Über") f=self.responseLabel.font() f.setPointSize(24) self.responseLabel.setFont(f) self.lineEdit.returnPressed.connect(self.update) self.updateButton.clicked.connect(self.update) self.autoUpdate.stateChanged.connect(self.updateAuto) self.aboutButton.clicked.connect(self.about) layout=QGridLayout() layout.addWidget(wordLabel,0,0) layout.addWidget(self.lineEdit,0,1) layout.addWidget(self.updateButton,0,2) layout.addWidget(self.autoUpdate,1,1,1,2) layout.addWidget(responseLabel,2,0) layout.addWidget(self.responseLabel,2,1,1,2) layout.addWidget(self.tableWidget,3,0,1,3) layout.addWidget(progressLabel,4,0) layout.addWidget(self.progressView,5,0,1,3) layout.addWidget(self.aboutButton,6,2) self.setLayout(layout) def closeEvent(self,event): self.thread.quit() self.thread.wait() event.accept() def keyPressEvent(self,event): if event.key() == Qt.Key_Escape: self.thread.calculator.progress.abort() event.accept() else: event.ignore()
def __init__(self, parent): super(Reports, self).__init__(parent) employee_eval = QLabel("<b>Individual Employee Evaluation</b> " "<br />including comments", self) font = employee_eval.font() font.setPointSize(13) employee_eval.setFont(font) self.employee_eval_print = QPushButton("&PRINT", self) self.employee_eval_pdf = QPushButton("&PDF", self) all_employees = QLabel("<b>All Employees</b> <br />sorted by evaluation " "score", self) all_employees.setFont(font) self.all_employees_print = QPushButton("&PRINT", self) self.all_employees_pdf = QPushButton("&PDF", self) all_employer = QLabel("<b>All Employer Information</b> <br />each employer " "with a list of employees", self) all_employer.setFont(font) self.all_employer_print = QPushButton("&PRINT", self) self.all_employer_pdf = QPushButton("&PDF", self) employee = QLabel("<b>Employee Information</b>", self) employee.setFont(font) self.employee_print = QPushButton("&PRINT", self) self.employee_pdf = QPushButton("&PDF", self) tps_report = QLabel("<b>TPS Report</b> <br />comprehensive total " "performance system", self) tps_report.setFont(font) self.tps_report_print = QPushButton("&PRINT", self) self.tps_report_pdf = QPushButton("&PDF", self) layout = QGridLayout(self) layout.addWidget(employee_eval, 0, 0) layout.addWidget(self.employee_eval_print, 0, 1) layout.addWidget(self.employee_eval_pdf, 0, 2) layout.addWidget(all_employees, 1, 0) layout.addWidget(self.all_employees_print, 1, 1) layout.addWidget(self.all_employees_pdf, 1, 2) layout.addWidget(all_employer, 2, 0) layout.addWidget(self.all_employer_print, 2, 1) layout.addWidget(self.all_employer_pdf, 2, 2) layout.addWidget(employee, 3, 0) layout.addWidget(self.employee_print, 3, 1) layout.addWidget(self.employee_pdf, 3, 2) layout.addWidget(tps_report, 4, 0) layout.addWidget(self.tps_report_print, 4, 1) layout.addWidget(self.tps_report_pdf, 4, 2)
class _BaseResultWidget(QWidget): def __init__(self, options, parent=None): QWidget.__init__(self, parent) # Variables self._options = options # Widgets self._lbl_title = QLabel("Untitled") font = self._lbl_title.font() font.setBold(True) font.setPointSize(14) self._lbl_title.setFont(font) self._lbl_subtitle = QLabel("") font = self._lbl_subtitle.font() font.setItalic(True) font.setPointSize(14) self._lbl_subtitle.setFont(font) # Layouts layout = QVBoxLayout() sublayout = QHBoxLayout() sublayout.addWidget(self._lbl_title) sublayout.addStretch() sublayout.addWidget(self._lbl_subtitle) layout.addLayout(sublayout) wdglayout = QVBoxLayout() wdglayout.addLayout(self._initUI(), 1) wdglayout.addWidget(self._initToolbar()) toolbox = self._initToolbox() if toolbox.count() == 0: layout.addLayout(wdglayout) else: wdg_dummy = QWidget() wdg_dummy.setLayout(wdglayout) splitter = QSplitter() splitter.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) splitter.addWidget(wdg_dummy) splitter.addWidget(toolbox) splitter.setCollapsible(0, False) splitter.setCollapsible(1, True) layout.addWidget(splitter) self.setLayout(layout) def _initUI(self): return QVBoxLayout() def _initToolbar(self): return QToolBar() def _initToolbox(self): return QToolBox() def options(self): return self._options def title(self): return self._lbl_title.text() def setTitle(self, title): self._lbl_title.setText(title) def subTitle(self): return self._lbl_subtitle.text() def setSubTitle(self, subtitle): self._lbl_subtitle.setText(subtitle)
class PositionPanel(QtGui.QWidget): positionTableWidget = None summaryTable = None movementFilterWidget = None row = 0 summaryRow = 0 positionColumnList = "Asset Name;Position;Unit Cost;Market Price;Change%;Invested amount;Valuated amount;Tenor;Maturity Date;Gross PNL;Net PNL;Gross%PNL;Net%PNL;Realized Pnl;%Portfolio;WeightedPNL%".split( ";") summaryColumnList = "Custody;Asset type;Invested Amount;Valuated Amount;Net PnL;Net%PNL;Realized Pnl;RPnL + NPnL;%Portfolio;WeightedPNL%".split( ";") def __init__(self): super(self.__class__, self).__init__() self.layout = QtGui.QGridLayout(self) self.movementFilterWidget = MovementFilterWidget() self.layout.addWidget(self.movementFilterWidget, 1, 0) def clearTables(self): self.row = 0 self.summaryRow = 0 self.createTable() self.createSummaryTable() self.createGeneralInfoPanel() def createSummaryTable(self): self.summaryTableWidget = QTableWidget() self.summaryTableWidget.setRowCount(7) self.summaryTableWidget.setColumnCount(len(self.summaryColumnList)) self.summaryTableWidget.setEditTriggers( QtGui.QAbstractItemView.NoEditTriggers) self.summaryTableWidget.setHorizontalHeaderLabels( self.summaryColumnList) #self.summaryTableWidget.setSortingEnabled(True) #self.summaryTableWidget.sortItems(0) self.summaryTableWidget.resizeColumnsToContents() self.summaryTableWidget.resizeRowsToContents() self.summaryTableWidget.setFixedSize(800, 200) self.layout.addWidget(self.summaryTableWidget, 1, 1) def createGeneralInfoPanel(self): self.generalInfoPanel = QWidget() self.generalInfoLayout = QtGui.QGridLayout(self.generalInfoPanel) self.lblUSDMXN = QLabel("USD/MXN") self.lblUSDMXN.font() self.lblUSDMXN.setFont( QtGui.QFont("MS Shell Dlg", 12, QtGui.QFont.Normal)) self.generalInfoLayout.addWidget(self.lblUSDMXN, 1, 1) self.lblUSDMXNValue = QLabel("0") self.lblUSDMXNValue.setFont( QtGui.QFont("MS Shell Dlg", 12, QtGui.QFont.Bold)) self.generalInfoLayout.addWidget(self.lblUSDMXNValue, 1, 2) self.generalInfoPanel.setFixedSize(200, 50) self.layout.addWidget(self.generalInfoPanel, 1, 2) def createTable(self): self.positionTableWidget = QTableWidget() self.positionTableWidget.setRowCount(27) self.positionTableWidget.setColumnCount( len(self.positionColumnList) + 1) self.positionTableWidget.setColumnHidden( Constant.CONST_COLUMN_POSITION_HIDDEN_ID, True) self.positionTableWidget.setEditTriggers( QtGui.QAbstractItemView.NoEditTriggers) self.positionTableWidget.setHorizontalHeaderLabels( self.positionColumnList) #self.positionTableWidget.setSortingEnabled(True) #self.positionTableWidget.sortItems(0) self.positionTableWidget.doubleClicked.connect(self.openMovementView) self.positionTableWidget.resizeColumnsToContents() self.positionTableWidget.resizeRowsToContents() self.layout.addWidget(self.positionTableWidget, 2, 0, 3, 3) def renderGeneralInfoPanel(self, usdMXNvalue): self.lblUSDMXNValue.setText(str(round(usdMXNvalue, 4))) #self.generalInfoLayout.addWidget(self.lblUSDMXNValue, 1, 2) def renderSummary(self, summaryDict): for (key, summaryItem) in sorted(summaryDict.iteritems()): if summaryItem.custodyName is None: isBold = True else: isBold = False #custodyName custodyNameItem = QTableWidgetItemString(summaryItem.custodyName, isBold) self.summaryTableWidget.setItem( self.summaryRow, Constant.CONST_COLUMN_SUMMARY_CUST_CUSTODY_NAME, custodyNameItem) #assetTypeName assetTypeNameItem = QTableWidgetItemString(summaryItem.assetType, isBold) self.summaryTableWidget.setItem( self.summaryRow, Constant.CONST_COLUMN_SUMMARY_CUST_ASSET_TYPE_NAME, assetTypeNameItem) #InvestedAmount investedAmountItem = QTableWidgetItemDecimal( summaryItem.investedAmount, isBold) self.summaryTableWidget.setItem( self.summaryRow, Constant.CONST_COLUMN_SUMMARY_CUST_INVESTED_AMOUNT, investedAmountItem) #valuatedAmount valuatedAmountItem = QTableWidgetItemDecimal( summaryItem.valuatedAmount, isBold) self.summaryTableWidget.setItem( self.summaryRow, Constant.CONST_COLUMN_SUMMARY_CUST_VALUATED_AMOUNT, valuatedAmountItem) #subTotalNetPnL netPnLItem = QTableWidgetItemDecimal(summaryItem.netPnL, isBold) self.summaryTableWidget.setItem( self.summaryRow, Constant.CONST_COLUMN_SUMMARY_CUST_NET_PNL, netPnLItem) #netPNLPercentage netPNLPercentageItem = QTableWidgetItemDecimal( summaryItem.getNetPnLPercentage(), isBold) self.summaryTableWidget.setItem( self.summaryRow, Constant.CONST_COLUMN_SUMMARY_CUST_NET_PNL_PERCENTAGE, netPNLPercentageItem) #realizedPnl realizedPnlItem = QTableWidgetItemDecimal(summaryItem.realizedPnl, isBold) self.summaryTableWidget.setItem( self.summaryRow, Constant.CONST_COLUMN_SUMMARY_CUST_REALIZED_PNL, realizedPnlItem) #realizedPnlPlusNetPnL realizedPnlPlusNetPnLItem = QTableWidgetItemDecimal( summaryItem.realizedPnl + summaryItem.netPnL, isBold) self.summaryTableWidget.setItem( self.summaryRow, Constant.CONST_COLUMN_SUMMARY_CUST_REALIZED_PNL_PLUS_NET_PNL, realizedPnlPlusNetPnLItem) #positionPercentage positionPercentageItem = QTableWidgetItemDecimal( summaryItem.positionPercentage, isBold) self.summaryTableWidget.setItem( self.summaryRow, Constant.CONST_COLUMN_SUMMARY_CUST_POSITION_PERCENTAGE, positionPercentageItem) #weightedPnL weightedPnLItem = QTableWidgetItemDecimal(summaryItem.weightedPnL, isBold) self.summaryTableWidget.setItem( self.summaryRow, Constant.CONST_COLUMN_SUMMARY_CUST_WEIGHTED_PNL, weightedPnLItem) self.summaryRow += 1 def renderSubtotal(self, positionDict, assetType, isSIC): accValuatedAmount = Engine.getSubTotalValuatedAmount( positionDict, assetType, isSIC) accInvestedAmount = Engine.getSubTotalInvestedAmount( positionDict, assetType, isSIC) accRealizedPnl = Engine.getAccRealizedPnL(positionDict, assetType, isSIC) accPositionPercentage = Engine.getAccPositionPercentage( positionDict, assetType, isSIC) accGrossPnlPercentage = Engine.getAccGrossPnlPercentage( positionDict, assetType, isSIC) accNetPnlPercentage = Engine.getAccNetPnlPercentage( positionDict, assetType, isSIC) accNetPNL = Engine.getAccNetPNL(positionDict, assetType, isSIC) accWeightedPNL = Engine.getAccWeightedPNL(positionDict, assetType, isSIC) #Invested amount investedAmountItem = QTableWidgetItemDecimal(accInvestedAmount, True) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_INVESTED_AMOUNT, investedAmountItem) #sub total valuated amount subTotalValuatedAmountItem = QTableWidgetItemDecimal( accValuatedAmount, True) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_VALUATED_AMOUNT, subTotalValuatedAmountItem) #sub total Gross PNL subTotalGrossPNLItem = QTableWidgetItemDecimalColor( Engine.getSubtotalGrossPNL(positionDict, assetType, isSIC), True) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_GROSS_PNL, subTotalGrossPNLItem) #sub total Net PNL subTotalNetPNLItem = QTableWidgetItemDecimalColor(accNetPNL, True) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_NET_PNL, subTotalNetPNLItem) #subTotalGrossPnLPercentage subTotalGrossPnLPercentage = QTableWidgetItemDecimalColor( accGrossPnlPercentage, True) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_GROSS_PNL_PERCENTAGE, subTotalGrossPnLPercentage) #pnLNetPercentage subTotalNetPnLPercentage = QTableWidgetItemDecimalColor( accNetPnlPercentage, True) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_GROSS_NET_PERCENTAGE, subTotalNetPnLPercentage) #realizedPnL realizedPnLItem = QTableWidgetItemDecimalColor(accRealizedPnl, True) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_REALIZED_PNL, realizedPnLItem) #positionPercentage positionPercentageItem = QTableWidgetItemDecimal( accPositionPercentage, True) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_POSITION_PERCENTAGE, positionPercentageItem) #weightedPercentageItem weightedPercentageItem = QTableWidgetItemDecimal(accWeightedPNL, True) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_WEIGHTED_PNL, weightedPercentageItem) #HiddenID hiddenIDItem = QTableWidgetItemDecimal(self.row, False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_HIDDEN_ID, hiddenIDItem) def renderPositions(self, positionDict, assetType, isSIC): positionList = Engine.getPositionByAssetType(positionDict, assetType, isSIC) for position in positionList: print('rendering ' + position.getAssetName()) if (position.getTotalQuantity() != 0): position.row = self.row #assetName assetNameItem = QTableWidgetItemString(position.getAssetName(), False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_ASSET_NAME, assetNameItem) #totalQuantity totalQuantityItem = QTableWidgetItemInt( position.getTotalQuantity(), False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_QUANTITY, totalQuantityItem) #UnitCostOrRate unitCostItem = QTableWidgetItemDecimal( position.getUnitCostOrRate(), False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_PPP, unitCostItem) #Market price marketPriceItem = QTableWidgetItemDuoDecimal( position.getMarketPrice(), position.getMarketPriceOrig()) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_MARKET_PRICE, marketPriceItem) #changePercentage changePercentageItem = QTableWidgetItemStringPlusMinus( position.changePercentage, False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_CHANGE_PERCENTAGE, changePercentageItem) #Invested amount investedAmountItem = QTableWidgetItemDecimal( position.getInvestedAmount(), False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_INVESTED_AMOUNT, investedAmountItem) #Valuated amount valuatedAmountItem = QTableWidgetItemDuoDecimal( position.getValuatedAmount(), position.getValuatedAmountOrig()) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_VALUATED_AMOUNT, valuatedAmountItem) #Tenor tenorItem = QTableWidgetItemDuoInt(position.tenor, position.getElapsedDays()) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_TENOR, tenorItem) #Maturity Date maturityDateItem = QTableWidgetItemString( position.getMaturityDate(), False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_MATURITY_DATE, maturityDateItem) #GrossPnL grossPnlItem = QTableWidgetItemDecimalColor( position.getGrossPnL(), False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_GROSS_PNL, grossPnlItem) #netPnL netPnlItem = QTableWidgetItemDecimalColor( position.getNetPnL(), False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_NET_PNL, netPnlItem) #pnLGrossPercentage pnLGrossPercentageItem = QTableWidgetItemDecimalColor( position.getGrossPnLPercentage(), False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_GROSS_PNL_PERCENTAGE, pnLGrossPercentageItem) #pnLNetPercentage pnLNetPercentageItem = QTableWidgetItemDecimalColor( position.getNetPnLPercentage(), False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_GROSS_NET_PERCENTAGE, pnLNetPercentageItem) #realizedPnL realizedPnLItem = QTableWidgetItemDecimalColor( position.getConsolidatedRealizedPnl(), False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_REALIZED_PNL, realizedPnLItem) #positionPercentage positionPercentageItem = QTableWidgetItemDecimal( position.getPositionPercentage(), False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_POSITION_PERCENTAGE, positionPercentageItem) #weightedPercentageItem weightedPercentageItem = QTableWidgetItemDecimal( position.getWeightedPnl(), False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_WEIGHTED_PNL, weightedPercentageItem) #HiddenID hiddenIDItem = QTableWidgetItemDecimal(self.row, False) self.positionTableWidget.setItem( self.row, Constant.CONST_COLUMN_POSITION_HIDDEN_ID, hiddenIDItem) self.row += 1 self.renderSubtotal(positionDict, assetType, isSIC) self.row += 1 def openMovementView(self): assetName = self.positionTableWidget.item( self.positionTableWidget.currentRow(), Constant.CONST_COLUMN_POSITION_ASSET_NAME).text() movementList = Engine.getMovementListByAsset( assetName, (self.movementFilterWidget.dateFromDate.date() ).toString("yyyy-M-dd"), (self.movementFilterWidget.dateToDate.date() ).toString("yyyy-M-dd")) self.movementView = MovementView(movementList) self.movementView.show()