def __init__(self, preferences, market): QMainWindow.__init__(self) self.preferences = preferences self.market = market # set up main window self.ui = Ui_MainWindow() self.ui.setupUi(self) # improve ui on mac if utilities.platform_is_mac(): self.adjust_for_mac() # connect market signals to our logic self.market.signal_log.connect(self.slot_log) self.market.signal_wallet.connect(self.display_wallet) self.market.signal_orderlag.connect(self.display_orderlag) self.market.signal_userorder.connect(self.display_userorder) self.market.signal_ticker.connect(self.update_titlebar) # connect ui signals to our logic self.ui.pushButtonGo.released.connect(self.execute_trade) self.ui.tableAsk.clicked.connect(self.update_edit_from_ask_book) self.ui.tableBid.clicked.connect(self.update_edit_from_bid_book) self.ui.pushButtonCancel.released.connect(self.cancel_order) #enable clicking of OrderID links in the Trading textBrowser self.ui.textBrowserStatus.anchorClicked.connect(self.order_selected) self.ui.pushButtonWalletA.released.connect( self.set_trade_size_from_wallet) self.ui.pushButtonWalletB.released.connect( self.set_trade_total_from_wallet) self.ui.pushButtonSize.released.connect(self.recalculate_size) self.ui.pushButtonPrice.released.connect(self.update_edit_on_button) self.ui.pushButtonTotal.released.connect(self.recalculate_total) self.ui.actionPreferences_2.triggered.connect(self.show_preferences) # associate log channels with their check boxes self.logchannels = [ [self.ui.checkBoxLogTicker, 'tick'], [self.ui.checkBoxLogTrade, 'trade'], [self.ui.checkBoxLogDepth, 'depth'], ] #connect the channel checkboxes to the handler that persists the #settings to the config file for x in self.logchannels: x[0].clicked.connect(self.set_ignorechan) #read the config file and re-apply previous settings self.get_ignorechan() # activate market self.market.start() # initialize and connect bid / ask table models self.modelAsk = ModelAsk(self, self.market, preferences) self.ui.tableAsk.setModel(self.modelAsk) self.modelBid = ModelBid(self, self.market, preferences) self.ui.tableBid.setModel(self.modelBid) #User Orders TAB self.modelOwns = ModelOwns(self, self.market, preferences) self.ui.tableUserOrders.setModel(self.modelOwns) self.ui.tableUserOrders.resizeColumnsToContents() self.ui.tableUserOrders.clicked.connect(self.userorder_selected) #create the stop orders TAB. self.modelStops = ModelStops(self, self.market) self.ui.tableStopOrders.setModel(self.modelStops) self.ui.tableStopOrders.resizeColumnsToContents() #add stop orders into the stop database self.ui.pushButton1StopAdd.released.connect(self.add_stopOrder) #on click, put Stop Order ID into the cancel button box. self.ui.tableStopOrders.clicked.connect(self.stopOrder_selected) #remove a stop order self.ui.pushButtonStopRemove.released.connect(self.remove_stopOrder) #activate the stop loss bot with the checkbox. self.ui.checkBoxActivateStopLossBot.clicked.connect( self.stopbot_act_deact) #for stuff in the Ticker TAB self.ui.pushButtonRefreshTicker.released.connect( self.refresh_and_display_ticker) self.ui.checkBoxAutoRefreshTicker.clicked.connect( self.autorefresh_ticker_selected) #populate the ticker tab fields. self.display_ticker() # show main window self.adjustSize() self.show() self.raise_()