import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QLabel, QPushButton, QComboBox
from PyQt5.QtCore import Qt
from PyQt5 import uic
form_class = uic.loadUiType("form2.ui")[0]
class MyApp(QWidget, form_class):
def __init__(self):
super().__init__()
self.setupUi(self)
self.initUI()
self.show()
def initUI(self):
self.unit = "Byte"
self.value = "0"
self.defaultDisplay()
self.RightShow()
self.ReadOnly()
lineEdit_font = self.lineEdit.font()
lineEdit_font.setPointSize(lineEdit_font.pointSize() + 9)
self.lineEdit.setFont(lineEdit_font)
self.ComboValue()
self.lineEdit.textChanged[str].connect(self.inputValue)
self.comboBox.activated[str].connect(self.inputUnit)
self.setWindowTitle('Trans_cal')
self.setGeometry(300, 300, 430, 430)
def defaultDisplay(self):
self.lineEdit.setText('0')
self.byte_1.setText('0')
self.kb_1.setText('0')
self.mb_1.setText('0')
self.gb_1.setText('0')
def RightShow(self):
self.lineEdit.setAlignment(Qt.AlignRight)
self.byte_1.setAlignment(Qt.AlignRight)
self.kb_1.setAlignment(Qt.AlignRight)
self.mb_1.setAlignment(Qt.AlignRight)
self.gb_1.setAlignment(Qt.AlignRight)
def ReadOnly(self):
self.byte_1.setReadOnly(True)
self.kb_1.setReadOnly(True)
self.mb_1.setReadOnly(True)
self.gb_1.setReadOnly(True)
def ComboValue(self):
self.comboBox.addItem('Byte')
self.comboBox.addItem('KB')
self.comboBox.addItem('MB')
self.comboBox.addItem('GB')
def inputValue(self, value):
self.value = value
if self.lineEdit.text() == '0':
return
if self.lineEdit.text() == '':
self.lineEdit.setText('0')
diti = self.value.isdigit()
if diti == False:
diti1 = '.' in self.lineEdit.text()
if diti1 == True:
if self.lineEdit.text().find('.') == 1:
self.lineEdit.setText('0')
if diti1 != True:
self.lineEdit.setText('0')
self.calculate()
def inputUnit(self, unit):
print(unit)
self.unit = unit
self.calculate()
def calculate(self):
if self.unit == "Byte":
byteVar = self.value
KBVar = float(self.value) / 1024
MBVar = (float(self.value)/1024) / 1024
GBVar = ((float(self.value)/1024)/1024) / 1024
self.byte_1.setText(byteVar)
self.kb_1.setText(str(KBVar))
self.mb_1.setText(str(MBVar))
self.gb_1.setText(str(GBVar))
if self.unit == "KB":
byteVar = float(self.value) * 1024
KBVar = self.value
MBVar = float(self.value) / 1024
GBVar = (float(self.value)/1024) / 1024
self.byte_1.setText(str(byteVar))
self.kb_1.setText(KBVar)
self.mb_1.setText(str(MBVar))
self.gb_1.setText(str(GBVar))
if self.unit == "MB":
byteVar = (float(self.value)*1024) * 1024
KBVar = float(self.value) * 1024
MBVar = self.value
GBVar = float(self.value) / 1024
self.byte_1.setText(str(byteVar))
self.kb_1.setText(str(KBVar))
self.mb_1.setText(MBVar)
self.gb_1.setText(str(GBVar))
if self.unit == "GB":
byteVar = ((float(self.value)*1024)*1024) * 1024
KBVar = (float(self.value)*1024) * 1024
MBVar = float(self.value) * 1024
GBVar = self.value
self.byte_1.setText(str(byteVar))
self.kb_1.setText(str(KBVar))
self.mb_1.setText(str(MBVar))
self.gb_1.setText(GBVar)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
sys.exit(app.exec_())