Amazing-Python-Scripts

Форк
0
91 строка · 2.9 Кб
1
from PyQt5.QtGui import *
2
from PyQt5.QtWidgets import *
3
from PyQt5.QtCore import *
4
from guiVersion import Ui_guiVersion
5
import json
6
import requests
7

8

9
class guiVersion(QMainWindow, Ui_guiVersion):
10
    def __init__(self, *args, **kwargs):
11
        super(guiVersion, self).__init__(*args, **kwargs)
12
        self.setupUi(self)
13
        self.show()
14
        # Vars
15
        self.new_label = '0'
16
        self.cur1 = 'BTC'
17
        self.cur2 = 'USD'
18
        self.result = ''
19
        # Connect buttons
20
        for n in range(0, 10):
21
            getattr(self,
22
                    'pushButton_n%s' % n).clicked.connect(self.digit_pressed)
23
        self.pushButton_n10.clicked.connect(self.decimal_point)
24
        self.pushButton_del.clicked.connect(self.del_digit)
25
        self.pushButton_convert.clicked.connect(self.convert_fun)
26
        self.comboBox.activated[str].connect(self.currencies1)
27
        self.comboBox_2.activated[str].connect(self.currencies2)
28

29
    def digit_pressed(self):
30
        button = self.sender()
31
        self.new_label = self.label_1.text() + button.text()
32
        if '.' in self.new_label:
33
            self.label_1.setText(str(self.new_label))
34
        else:
35
            self.label_1.setText(str(int(self.new_label)))
36

37
    def decimal_point(self):
38
        if '.' in self.label_1.text():
39
            pass
40
        else:
41
            self.label_1.setText(self.label_1.text() + '.')
42

43
    def del_digit(self):
44
        self.new_label = self.new_label[:-1]
45
        self.label_1.setText(self.new_label)
46

47
    def currencies1(self, item1):
48
        self.cur1 = item1
49
        # print(self.cur1)
50

51
    def currencies2(self, item2):
52
        self.cur2 = item2
53
        # print(self.cur2)
54

55
    # Live data from API
56
    def api(self, cur1, cur2):
57
        api_link = "https://min-api.cryptocompare.com/data/pricemulti?fsyms={}&tsyms={}".format(
58
            cur1, cur2)
59
        resp = requests.get(api_link)
60
        # print(r.status_code)
61
        data = json.loads(resp.content)
62
        # print(data)
63
        var = data[self.cur1][self.cur2]
64
        return var
65

66
    def convert_fun(self):
67
        try:
68
            if len(self.new_label) == 0:
69
                self.label_1.setText('0')
70
                self.label_2.setText('0')
71
            if '.' in self.new_label:
72
                self.result = float(self.new_label) * \
73
                    self.api(self.cur1, self.cur2)
74
                self.result = round(self.result, 2)
75
                self.label_2.setText(str(self.result))
76
            else:
77
                self.result = int(self.new_label) * \
78
                    self.api(self.cur1, self.cur2)
79
                self.result = round(self.result, 2)
80
                self.label_2.setText(str(self.result))
81
        except (KeyError, ValueError):
82
            pass
83
        except requests.exceptions.ConnectionError:
84
            print('Please verify your internet connection!')
85

86

87
if __name__ == '__main__':
88
    app = QApplication([])
89
    app.setApplicationName("CryptoConverter")
90
    window = guiVersion()
91
    app.exec_()
92

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.