Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from time import sleep, time
- import pandas as pd
- import concurrent.futures, requests, queue, sys
- from threading import Thread
- from PyQt5.QtWidgets import *
- from PyQt5.QtGui import QIcon, QFont, QKeySequence, QPalette, QBrush, QColor, QPixmap, QMovie, QPainter
- from PyQt5.QtCore import Qt, QSize, QRect, QThread, pyqtSignal, QTimer
- class MovieSplashScreen(QSplashScreen):
- def __init__(self, movie, parent = None):
- movie.jumpToFrame(0)
- pixmap = QPixmap(movie.frameRect().size())
- QSplashScreen.__init__(self, pixmap)
- self.movie = movie
- self.movie.frameChanged.connect(self.repaint)
- def showEvent(self, event):
- self.movie.start()
- def hideEvent(self, event):
- self.movie.stop()
- def paintEvent(self, event):
- painter = QPainter(self)
- pixmap = self.movie.currentPixmap()
- self.setMask(pixmap.mask())
- painter.drawPixmap(0, 0, pixmap)
- def sizeHint(self):
- return self.movie.scaledSize()
- def splashScreen(zeit = 0):
- print('===splashScreen(self)====')
- dapp = QApplication(['a', 's'])
- # Create and display the splash screen
- movie = QMovie("img\\fuchs.gif")
- if zeit <= 2:
- gerundet = 50
- elif zeit > 2:
- gerundet = zeit * 60
- print("gerundet = ", gerundet)
- splash = MovieSplashScreen(movie)
- width = splash.frameGeometry().width()
- height = splash.frameGeometry().height()
- x = splash.pos().x()
- y = splash.pos().y()
- print('splash x,y: ',width, height, x, y)
- splash.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint)
- splash.setEnabled(False)
- # adding progress bar
- palette = QPalette()
- palette.setColor(QPalette.Highlight, Qt.green)
- progressBar = QProgressBar()
- progressBar.setMaximum(gerundet)
- progressBar.setGeometry(x, y-30, width, 20)
- progressBar.setPalette(palette)
- progressBar.setWindowFlags(Qt.SplashScreen | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint)
- gerundet = gerundet + 1
- #splash.setMask(splash_pix.mask())
- progressBar.show()
- splash.show()
- splash.showMessage("<h1><font color='red'></font></h1>", Qt.AlignTop | Qt.AlignCenter, Qt.black)
- for i in range(1, gerundet):
- progressBar.setValue(i)
- t = time()
- while time() < t + 0.1:
- dapp.processEvents()
- progressBar.hide()
- window = QWidget()
- splash.finish(window)
- dapp.deleteLater() # here are troubles maybe in cause of main.py with the GUI has a app = QAplllication(sys.argv) too?
- def getSignals(selectedCoins, selectedCoinsText):
- print("=====getFilteredSignals====")
- dfFilter = []
- noResults = []
- print("selectedCoins: ", selectedCoins)
- zeit = len(selectedCoins)
- # Problems here?
- t = Thread(target=splashScreen, args=(zeit,))
- t.start()
- for i in range(len(selectedCoins)):
- print("i: "+str(i)+" ", selectedCoins[i])
- if i >= 1:
- sleep(6)
- result = makeSignals(selectedCoins[i])
- print("results.empty: ", result.empty)
- if result.empty == False:
- result = result.set_index('Pair', inplace=False)
- dfFilter.append(result)
- else:
- print("selectedCoinsText"+str(i)+": ", selectedCoinsText[i])
- noResults.append(selectedCoinsText[i])
- print("\nlen(dfFilter): ", len(dfFilter))
- if len(dfFilter) == 0:
- print("\n\n====in if len(dfFilter) == 0: \n dfFilter: ", dfFilter)
- # Creating an empty Dataframe with column names only
- dfempty = pd.DataFrame(columns=['User_ID', 'UserName', 'Action'])
- print("Empty Dataframe ", dfempty,'\n dfempty.empty: ', dfempty.empty)
- return dfempty
- elif len(dfFilter) > 0:
- for i in range(len(dfFilter)):
- print("\n\n====in for loop=== \n dfFilter ["+str(i)+"]: \n", dfFilter[i])
- filteredResults = pd.concat(dfFilter, axis=0, sort=False)
- #filteredResults['Gain (%)'] = pd.to_numeric(filteredResults['Gain (%)'], errors='coerce')
- filteredResults = filteredResults.sort_values(by='Gain (%)', ascending=False, inplace=False)
- filteredResults = filteredResults.reset_index(inplace=False)
- print('\nfilteredResults: \n', filteredResults, "\n", filteredResults.dtypes)
- return filteredResults
Add Comment
Please, Sign In to add comment