snail 溶剂比例计算器升级版
[总点击:327次]
2009年12月12日
添加了利用现有两种溶液来计算欲配溶液的功能
修复了一些易引发错误的代码。
片片:

代码:
snail.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 | #!/usr/bin/python # -*- coding: utf-8 -*- # Author: xiooli <xioooli[at]yahoo.com.cn> # Site: http://joolix.com # Licence: GPLv3 import sys, os from PyQt4 import QtCore, QtGui from ui_zh import Ui_mainWindow from PyQt4.QtGui import QMainWindow from PyQt4.QtCore import pyqtSignature class Win(QMainWindow, Ui_mainWindow): def __init__(self, parent = None): QMainWindow.__init__(self, parent) self.setupUi(self) @pyqtSignature("") def on_pushButton_clicked(self): self.label_6_txt = "" now_B_A = now_B_B = "" continue_com = "" vol = "" rst = "" try: now_B_A = float(self.lineEdit_4.text()) now_B_B = float(self.lineEdit_5.text()) except: pass try: now_A_A = float(self.lineEdit_1.text()) now_A_B = float(self.lineEdit_2.text()) now_vol = float(self.lineEdit_3.text()) want_A = float(self.lineEdit_6.text()) want_B = float(self.lineEdit_7.text()) except ValueError: self.label_6_txt = "错误:有输入框未输入数字,或输入了非数字字符!" if ( not self.label_6_txt ) and ( now_B_A and now_B_B ): try: vol,rst = self.lineEdit_3.text(),\ round(now_vol*( now_A_A/(now_A_A+now_A_B)-want_A/(want_A+want_B) ) / \ ( want_A/(want_A+want_B)-now_B_A/(now_B_A+now_B_B) ), 4) except ZeroDivisionError: self.label_6_txt = "错误:试图除零!" if rst != "" and rst > 0: rst = str(rst) self.label_6_txt = "须向 " + vol + " ML 现有溶液 A 中加入现有溶液 B " + rst + " ML" else: self.label_6_txt = "注意:现有溶液 A 和 B 不能配制出欲配溶液<p>" continue_com = 1 if ( not self.label_6_txt ) or continue_com: if want_A*(now_A_A+now_A_B) == 0: self.label_6_txt = "错误:试图除零!" elif want_B != 0 and (now_A_B == 0 or now_A_A / now_A_B > want_A / want_B): vol,rst = self.lineEdit_3.text(),\ str(round(now_vol*now_A_A*(want_A+want_B)/(want_A*(now_A_A+now_A_B))-now_vol,4)) self.label_6_txt += "须向 " + vol + " ML 现有溶液 A 中加入溶剂 B " + rst + " ML" elif want_B != 0 and now_A_B != 0 and now_A_A / now_A_B == want_A / want_B: self.label_6_txt = "现有溶液 A 和欲配溶液是同一种溶液,无须额外动作。" else: try: vol,rst=self.lineEdit_3.text(),\ str(round(now_vol*now_A_B*(want_A+want_B)/(want_B*(now_A_A+now_A_B))-now_vol,4)) self.label_6_txt += "须向 " + vol + " ML 现有溶液 A 中加入溶剂 A " + rst + " ML" except ZeroDivisionError: self.label_6_txt = "错误:试图除零!" self.label_6.setText(QtGui.QApplication.translate("mainWindow", self.label_6_txt, None, QtGui.QApplication.UnicodeUTF8)) if __name__ == "__main__": app = QtGui.QApplication(sys.argv) win=Win() win.show() sys.exit(app.exec_()) |
ui_zh.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 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'snail.ui' # # Created: Wed Nov 11 21:15:36 2009 # by: PyQt4 UI code generator 4.6.1 # # WARNING! All changes made in this file will be lost! from PyQt4 import QtCore, QtGui class Ui_mainWindow(object): def setupUi(self, mainWindow): mainWindow.setObjectName("mainWindow") mainWindow.resize(872, 452) self.centralwidget = QtGui.QWidget(mainWindow) self.centralwidget.setObjectName("centralwidget") self.lineEdit_1 = QtGui.QLineEdit(self.centralwidget) self.lineEdit_1.setGeometry(QtCore.QRect(250, 90, 171, 51)) self.lineEdit_1.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\";") self.lineEdit_1.setObjectName("lineEdit_1") self.lineEdit_2 = QtGui.QLineEdit(self.centralwidget) self.lineEdit_2.setGeometry(QtCore.QRect(460, 90, 171, 51)) self.lineEdit_2.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\";") self.lineEdit_2.setObjectName("lineEdit_2") self.lineEdit_3 = QtGui.QLineEdit(self.centralwidget) self.lineEdit_3.setGeometry(QtCore.QRect(670, 90, 161, 51)) self.lineEdit_3.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\";") self.lineEdit_3.setObjectName("lineEdit_3") self.lineEdit_4 = QtGui.QLineEdit(self.centralwidget) self.lineEdit_4.setGeometry(QtCore.QRect(250, 170, 171, 51)) self.lineEdit_4.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\";") self.lineEdit_4.setObjectName("lineEdit_4") self.lineEdit_5 = QtGui.QLineEdit(self.centralwidget) self.lineEdit_5.setGeometry(QtCore.QRect(460, 170, 171, 51)) self.lineEdit_5.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\";") self.lineEdit_5.setObjectName("lineEdit_5") self.label = QtGui.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(280, 20, 131, 41)) self.label.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\"; A") self.label.setObjectName("label") self.label_2 = QtGui.QLabel(self.centralwidget) self.label_2.setGeometry(QtCore.QRect(490, 20, 131, 41)) self.label_2.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\"; A") self.label_2.setObjectName("label_2") self.label_3 = QtGui.QLabel(self.centralwidget) self.label_3.setGeometry(QtCore.QRect(710, 20, 131, 41)) self.label_3.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\"; A") self.label_3.setObjectName("label_3") self.label_4 = QtGui.QLabel(self.centralwidget) self.label_4.setGeometry(QtCore.QRect(40, 100, 171, 41)) self.label_4.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\"; A") self.label_4.setObjectName("label_4") self.label_5 = QtGui.QLabel(self.centralwidget) self.label_5.setGeometry(QtCore.QRect(40, 250, 171, 41)) self.label_5.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\"; A") self.label_5.setObjectName("label_5") self.pushButton = QtGui.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(670, 170, 161, 51)) self.pushButton.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\";") self.pushButton.setObjectName("pushButton") self.frame = QtGui.QFrame(self.centralwidget) self.frame.setEnabled(True) self.frame.setGeometry(QtCore.QRect(40, 330, 791, 91)) self.frame.setMouseTracking(False) self.frame.setAutoFillBackground(False) self.frame.setFrameShape(QtGui.QFrame.StyledPanel) self.frame.setFrameShadow(QtGui.QFrame.Raised) self.frame.setObjectName("frame") self.label_6 = QtGui.QLabel(self.frame) self.label_6.setGeometry(QtCore.QRect(10, 10, 781, 71)) self.label_6.setStyleSheet("""font: 22pt \"Bitstream Vera Sans Mono\"; color: rgb(0, 0, 255);""") self.label_6.setObjectName("label_6") self.label_7 = QtGui.QLabel(self.centralwidget) self.label_7.setGeometry(QtCore.QRect(40, 180, 171, 41)) self.label_7.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\"; A") self.label_7.setObjectName("label_7") self.lineEdit_6 = QtGui.QLineEdit(self.centralwidget) self.lineEdit_6.setGeometry(QtCore.QRect(250, 250, 171, 51)) self.lineEdit_6.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\";") self.lineEdit_6.setObjectName("lineEdit_6") self.lineEdit_7 = QtGui.QLineEdit(self.centralwidget) self.lineEdit_7.setGeometry(QtCore.QRect(460, 250, 171, 51)) self.lineEdit_7.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\";") self.lineEdit_7.setObjectName("lineEdit_7") self.pushButton_2 = QtGui.QPushButton(self.centralwidget) self.pushButton_2.setGeometry(QtCore.QRect(670, 250, 161, 51)) self.pushButton_2.setStyleSheet("font: 22pt \"Bitstream Vera Sans Mono\";") self.pushButton_2.setObjectName("pushButton_2") mainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(mainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 872, 25)) self.menubar.setObjectName("menubar") mainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(mainWindow) self.statusbar.setObjectName("statusbar") mainWindow.setStatusBar(self.statusbar) self.retranslateUi(mainWindow) QtCore.QObject.connect(self.pushButton, QtCore.SIGNAL("clicked()"), self.label_6.clear) QtCore.QObject.connect(self.pushButton_2, QtCore.SIGNAL("clicked()"), mainWindow.close) QtCore.QMetaObject.connectSlotsByName(mainWindow) def retranslateUi(self, mainWindow): mainWindow.setWindowTitle(QtGui.QApplication.translate("mainWindow", " 溶剂比例计算器 - Snail", None, QtGui.QApplication.UnicodeUTF8)) self.lineEdit_3.setText(QtGui.QApplication.translate("mainWindow", "1000", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("mainWindow", " 溶剂 A", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setText(QtGui.QApplication.translate("mainWindow", " 溶剂 B", None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setText(QtGui.QApplication.translate("mainWindow", "体积", None, QtGui.QApplication.UnicodeUTF8)) self.label_4.setText(QtGui.QApplication.translate("mainWindow", "现有溶液 A", None, QtGui.QApplication.UnicodeUTF8)) self.label_5.setText(QtGui.QApplication.translate("mainWindow", "欲配溶液", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton.setText(QtGui.QApplication.translate("mainWindow", "计算", None, QtGui.QApplication.UnicodeUTF8)) self.label_6.setText(QtGui.QApplication.translate("mainWindow", "欢迎使用溶剂比例计算器 Snail\nxiooli <xioooli@yahoo.com.cn>", None, QtGui.QApplication.UnicodeUTF8)) self.label_7.setText(QtGui.QApplication.translate("mainWindow", "现有溶液 B", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_2.setText(QtGui.QApplication.translate("mainWindow", "关闭", None, QtGui.QApplication.UnicodeUTF8)) |
最近评论