Amazing-Python-Scripts
91 строка · 2.9 Кб
1from PyQt5.QtGui import *2from PyQt5.QtWidgets import *3from PyQt5.QtCore import *4from guiVersion import Ui_guiVersion5import json6import requests7
8
9class guiVersion(QMainWindow, Ui_guiVersion):10def __init__(self, *args, **kwargs):11super(guiVersion, self).__init__(*args, **kwargs)12self.setupUi(self)13self.show()14# Vars15self.new_label = '0'16self.cur1 = 'BTC'17self.cur2 = 'USD'18self.result = ''19# Connect buttons20for n in range(0, 10):21getattr(self,22'pushButton_n%s' % n).clicked.connect(self.digit_pressed)23self.pushButton_n10.clicked.connect(self.decimal_point)24self.pushButton_del.clicked.connect(self.del_digit)25self.pushButton_convert.clicked.connect(self.convert_fun)26self.comboBox.activated[str].connect(self.currencies1)27self.comboBox_2.activated[str].connect(self.currencies2)28
29def digit_pressed(self):30button = self.sender()31self.new_label = self.label_1.text() + button.text()32if '.' in self.new_label:33self.label_1.setText(str(self.new_label))34else:35self.label_1.setText(str(int(self.new_label)))36
37def decimal_point(self):38if '.' in self.label_1.text():39pass40else:41self.label_1.setText(self.label_1.text() + '.')42
43def del_digit(self):44self.new_label = self.new_label[:-1]45self.label_1.setText(self.new_label)46
47def currencies1(self, item1):48self.cur1 = item149# print(self.cur1)50
51def currencies2(self, item2):52self.cur2 = item253# print(self.cur2)54
55# Live data from API56def api(self, cur1, cur2):57api_link = "https://min-api.cryptocompare.com/data/pricemulti?fsyms={}&tsyms={}".format(58cur1, cur2)59resp = requests.get(api_link)60# print(r.status_code)61data = json.loads(resp.content)62# print(data)63var = data[self.cur1][self.cur2]64return var65
66def convert_fun(self):67try:68if len(self.new_label) == 0:69self.label_1.setText('0')70self.label_2.setText('0')71if '.' in self.new_label:72self.result = float(self.new_label) * \73self.api(self.cur1, self.cur2)74self.result = round(self.result, 2)75self.label_2.setText(str(self.result))76else:77self.result = int(self.new_label) * \78self.api(self.cur1, self.cur2)79self.result = round(self.result, 2)80self.label_2.setText(str(self.result))81except (KeyError, ValueError):82pass83except requests.exceptions.ConnectionError:84print('Please verify your internet connection!')85
86
87if __name__ == '__main__':88app = QApplication([])89app.setApplicationName("CryptoConverter")90window = guiVersion()91app.exec_()92