-
Notifications
You must be signed in to change notification settings - Fork 0
/
converter.py
92 lines (65 loc) · 2.48 KB
/
converter.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import sys
from PyQt5.QtCore import QObject, Qt
from PyQt5.QtWidgets import (
QApplication, QMainWindow, QWidget,
QLabel, QDoubleSpinBox, QPushButton,
QVBoxLayout
)
class Converter(QMainWindow):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.initUi()
self.initLayouts()
self.initSignals()
self.changeBtn()
def initUi(self):
self.setWindowTitle('Конвертер валют')
self.srcLabel = QLabel('Сумма в рублях', self)
self.resultLabel = QLabel('Сумма в долларах', self)
self.srcAmount = QDoubleSpinBox(self)
self.srcAmount.setMaximum(999999999)
self.resultAmount = QDoubleSpinBox(self)
self.resultAmount.setMaximum(999999999)
#self.resultAmount.setReadOnly(True)
self.convertBtn = QPushButton('Перевести', self)
self.clearBtn = QPushButton('Сброс', self)
def initSignals(self):
self.convertBtn.clicked.connect(self.onClickConvertBtn)
self.clearBtn.clicked.connect(self.clearAmounts)
self.srcAmount.valueChanged.connect(self.changeBtn)
self.resultAmount.valueChanged.connect(self.changeBtn)
def initLayouts(self):
w = QWidget(self)
self.mainLayout = QVBoxLayout(w)
self.mainLayout.addWidget(self.srcLabel)
self.mainLayout.addWidget(self.srcAmount)
self.mainLayout.addWidget(self.resultLabel)
self.mainLayout.addWidget(self.resultAmount)
self.mainLayout.addWidget(self.convertBtn)
self.mainLayout.addWidget(self.clearBtn)
self.setCentralWidget(w)
def onClickConvertBtn(self):
value = self.srcAmount.value()
if self.srcAmount.value():
self.resultAmount.setValue(value / 30)
else:
self.srcAmount.setValue(self.resultAmount.value() * 30)
def keyPressEvent(self, e):
if e.key() == Qt.Key_Return:
self.onClickConvertBtn()
def clearAmounts(self):
self.resultAmount.setValue(0)
self.srcAmount.setValue(0)
self.changeBtn()
def changeBtn(self):
v1 = self.srcAmount.value()
v2 = self.resultAmount.value()
if (not v1 and not v2) or (v1 and v2):
self.convertBtn.setEnabled(False)
else:
self.convertBtn.setEnabled(True)
if __name__ == '__main__':
app = QApplication(sys.argv)
c = Converter()
c.show()
sys.exit(app.exec_())