Как использовать условный оператор if при проверке введенных данных?
Есть задача, в которой условия прописаны тем, что надо выбрать индекс переменной,
то есть умножение при выборе значения индекса 1, 2, 3, ... на соответствующее из значений 1000, 100, 10, ...
Не понимаю, как учитывать условие в данной ситуации, он его просто не воспринимает.
main.py
from PyQt5 import QtWidgets
from gert import Ui_MainWindow
import sys
class mywindow(QtWidgets.QMainWindow):
def __init__(self):
super(mywindow, self).__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
# подключение клик-сигнал к слоту btnClicked
self.ui.pushButton.clicked.connect(self.btnClicked)
def btnClicked(self):
x = self.ui.textEdit_2.toPlainText()
y = self.ui.textEdit.toPlainText()
if y == 1:
z = float(x)
self.ui.lineEdit.setText(f" {z:.0f}")
app = QtWidgets.QApplication([])
application = mywindow()
application.show()
sys.exit(app.exec())
gert.py
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(777, 484)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.listView = QtWidgets.QListView(self.centralwidget)
self.listView.setGeometry(QtCore.QRect(-160, -120, 1281, 901))
self.listView.setObjectName("listView")
self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(180, 270, 121, 31))
self.textEdit.setObjectName("textEdit")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(20, 280, 151, 16))
self.label.setObjectName("label")
self.textEdit_2 = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit_2.setGeometry(QtCore.QRect(180, 230, 121, 31))
self.textEdit_2.setObjectName("textEdit_2")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(30, 240, 151, 16))
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(50, 30, 181, 111))
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(180, 60, 71, 16))
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(180, 80, 81, 16))
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(180, 100, 71, 16))
self.label_6.setObjectName("label_6")
self.label_7 = QtWidgets.QLabel(self.centralwidget)
self.label_7.setGeometry(QtCore.QRect(180, 120, 51, 16))
self.label_7.setObjectName("label_7")
self.textEdit_3 = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit_3.setGeometry(QtCore.QRect(230, 0, 351, 41))
self.textEdit_3.setObjectName("textEdit_3")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(540, 250, 141, 31))
self.lineEdit.setObjectName("lineEdit")
self.label_8 = QtWidgets.QLabel(self.centralwidget)
self.label_8.setGeometry(QtCore.QRect(500, 260, 47, 13))
self.label_8.setObjectName("label_8")
self.label_9 = QtWidgets.QLabel(self.centralwidget)
self.label_9.setGeometry(QtCore.QRect(180, 140, 71, 16))
self.label_9.setObjectName("label_9")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(550, 370, 121, 41))
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 777, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "Введите значение индекса:"))
self.label_2.setText(_translate("MainWindow", "Количественная единица:"))
self.label_3.setText(_translate("MainWindow", "Значение индексов:"))
self.label_4.setText(_translate("MainWindow", "1)килограммы"))
self.label_5.setText(_translate("MainWindow", "2)милиграммы"))
self.label_6.setText(_translate("MainWindow", "3)граммы"))
self.label_7.setText(_translate("MainWindow", "4)тонны"))
self.textEdit_3.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:14pt;\">Антон Корнеенков ИВТ-12 Вариант-6</span></p></body></html>"))
self.label_8.setText(_translate("MainWindow", "Итог:"))
self.label_9.setText(_translate("MainWindow", "5)центнеры"))
self.pushButton.setText(_translate("MainWindow", "Вычислить"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Не уверен что правильно понял вас, но попробуйте так:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
#from gert import Ui_MainWindow
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(777, 484)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.listView = QtWidgets.QListView(self.centralwidget)
self.listView.setGeometry(QtCore.QRect(-160, -120, 1281, 901))
self.listView.setObjectName("listView")
self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(180, 270, 121, 31))
self.textEdit.setObjectName("textEdit")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(20, 280, 151, 16))
self.label.setObjectName("label")
self.textEdit_2 = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit_2.setGeometry(QtCore.QRect(180, 230, 121, 31))
self.textEdit_2.setObjectName("textEdit_2")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(30, 240, 151, 16))
self.label_2.setObjectName("label_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(50, 30, 181, 111))
self.label_3.setObjectName("label_3")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(180, 60, 71, 16))
self.label_4.setObjectName("label_4")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(180, 80, 81, 16))
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(180, 100, 71, 16))
self.label_6.setObjectName("label_6")
self.label_7 = QtWidgets.QLabel(self.centralwidget)
self.label_7.setGeometry(QtCore.QRect(180, 120, 51, 16))
self.label_7.setObjectName("label_7")
self.textEdit_3 = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit_3.setGeometry(QtCore.QRect(230, 0, 351, 41))
self.textEdit_3.setObjectName("textEdit_3")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(540, 250, 141, 31))
self.lineEdit.setObjectName("lineEdit")
self.label_8 = QtWidgets.QLabel(self.centralwidget)
self.label_8.setGeometry(QtCore.QRect(500, 260, 47, 13))
self.label_8.setObjectName("label_8")
self.label_9 = QtWidgets.QLabel(self.centralwidget)
self.label_9.setGeometry(QtCore.QRect(180, 140, 71, 16))
self.label_9.setObjectName("label_9")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(550, 370, 121, 41))
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 777, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "Введите значение индекса:"))
self.label_2.setText(_translate("MainWindow", "Количественная единица:"))
self.label_3.setText(_translate("MainWindow", "Значение индексов:"))
self.label_4.setText(_translate("MainWindow", "1)килограммы"))
self.label_5.setText(_translate("MainWindow", "2)милиграммы"))
self.label_6.setText(_translate("MainWindow", "3)граммы"))
self.label_7.setText(_translate("MainWindow", "4)тонны"))
self.textEdit_3.setHtml(_translate("MainWindow", "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p, li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
"<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:14pt;\">Антон Корнеенков ИВТ-12 Вариант-6</span></p></body></html>"))
self.label_8.setText(_translate("MainWindow", "Итог:"))
self.label_9.setText(_translate("MainWindow", "5)центнеры"))
self.pushButton.setText(_translate("MainWindow", "Вычислить"))
# --> v v
class MyWindow(QtWidgets.QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
# подключение клик-сигнал к слоту btnClicked
self.ui.pushButton.clicked.connect(self.btnClicked)
self.ui.textEdit_2.setFocus()
def btnClicked(self):
x = self.ui.textEdit_2.toPlainText()
y = self.ui.textEdit.toPlainText()
if not y or not x:
msg = QtWidgets.QMessageBox.information(
self,
'Внимание',
'Заполните поля необходимые для расчета.'
)
self.ui.textEdit_2.setFocus()
self.ui.lineEdit.clear()
return
try:
z = float(x)
except:
msg = QtWidgets.QMessageBox.information(
self,
'Внимание',
'Количественная единица может принимать значениен \n'
'или целое число или число с плавающей запятой.'
)
self.ui.textEdit_2.setFocus()
self.ui.lineEdit.clear()
return
# ------------> v v <---- !!! +++
if y == '1':
self.ui.lineEdit.setText(f" {z * 1000:.0f}")
elif y == '2':
self.ui.lineEdit.setText(f" {z * 100:.0f}")
elif y == '3':
self.ui.lineEdit.setText(f" {z * 10:.0f}")
# elif y == '4':
# ...
# ...
else:
msg = QtWidgets.QMessageBox.information(
self,
'Внимание',
'Вы ввели неправильное значение индекса.'
)
self.ui.textEdit.setFocus()
self.ui.lineEdit.clear()
if __name__ == "__main__":
app = QtWidgets.QApplication([])
w = MyWindow()
w.show()
sys.exit(app.exec())
