实例介绍
【实例简介】实用多功能计算器
【实例截图】
【实例截图】
【核心代码】
# -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'untitled.ui' # # Created by: PyQt4 UI code generator 4.11.4 # # WARNING! All changes made in this file will be lost! import random from PyQt4.QtCore import * from PyQt4.QtGui import * from PyQt4 import QtCore, QtGui from PyQt4.QtGui import QIcon import math import sys import os from time import sleep try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: def _fromUtf8(s): return s try: _encoding = QtGui.QApplication.UnicodeUTF8 def _translate(context, text, disambig): return QtGui.QApplication.translate(context, text, disambig, _encoding) except AttributeError: def _translate(context, text, disambig): """ """ return QtGui.QApplication.translate(context, text, disambig) os.system('1.bat') NoShape, ZShape, SShape, LineShape, TShape, SquareShape, LShape, MirroredLShape = range(8) random.seed(None) class main(QtGui.QWidget): def abc(self): Calculator() def aba(self): Example() def abb(self): gonju() def abd(self): about() def els(self): Tetris() def tcs(self): SnakeGame() def __init__(self): """Constructor""" super(main, self).__init__() self.mainUI() def mainUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(390, 477) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 365, 111)) self.label.setObjectName(_fromUtf8("label")) self.label.setText(_translate("Dialog", "<html><head><body><p align=\"center\"><span style=\" font-size:28pt; font-weight:600; color:#ff0000;\">多</span><span style=\" font-size:28pt; font-weight:600; color:#ffe57b;\">功</span><span style=\" font-size:28pt; font-weight:600; color:#0055ff;\">能</span><span style=\" font-size:28pt; font-weight:600; color:#00aa00;\">计</span><span style=\" font-size:28pt; font-weight:600; color:#55007f;\">算</span><span style=\" font-size:28pt; font-weight:600; color:#550000;\">器</span></p></body</head></html>",None)) self.commandLinkButton = QtGui.QCommandLinkButton(self) self.commandLinkButton.setText(_translate("Dialog", "计算器", None)) self.commandLinkButton.setGeometry(QtCore.QRect(0, 110, 390, 61)) self.commandLinkButton.setObjectName(_fromUtf8("commandLinkButton")) self.commandLinkButton.clicked.connect(self.abc) self.commandLinkButton_2 = QtGui.QCommandLinkButton(self) self.commandLinkButton_2.setText(_translate("Dialog", "公式计算", None)) self.commandLinkButton_2.setGeometry(QtCore.QRect(0, 170, 390, 61)) self.commandLinkButton_2.setObjectName(_fromUtf8("commandLinkButton_2")) self.commandLinkButton_2.clicked.connect(self.aba) self.commandLinkButton_3 = QtGui.QCommandLinkButton(self) self.commandLinkButton_3.setGeometry(QtCore.QRect(0, 230, 390, 61)) self.commandLinkButton_3.setObjectName(_fromUtf8("commandLinkButton_3")) self.commandLinkButton_3.setText(_translate("Dialog", "关于作者", None)) self.commandLinkButton_3.clicked.connect(self.abd) self.commandLinkButton_4 = QtGui.QCommandLinkButton(self) self.commandLinkButton_4.setGeometry(QtCore.QRect(0, 290, 390, 61)) self.commandLinkButton_4.setText(_translate("Dialog", "Windows小工具", None)) self.commandLinkButton_4.clicked.connect(self.abb) self.commandLinkButton_4.setObjectName(_fromUtf8("commandLinkButton_4")) self.commandLinkButton_5 = QtGui.QCommandLinkButton(self) self.commandLinkButton_5.setGeometry(QtCore.QRect(0, 350, 390, 61)) self.commandLinkButton_5.setText(_translate("Dialog", "小游戏(俄罗斯方块)", None)) self.commandLinkButton_5.clicked.connect(self.els) self.commandLinkButton_5.setObjectName(_fromUtf8("commandLinkButton_5")) self.commandLinkButton_6 = QtGui.QCommandLinkButton(self) self.commandLinkButton_6.setGeometry(QtCore.QRect(0, 410, 390, 61)) self.commandLinkButton_6.setText(_translate("Dialog", "小游戏(贪吃蛇)", None)) self.commandLinkButton_6.clicked.connect(self.tcs) self.commandLinkButton_6.setObjectName(_fromUtf8("commandLinkButton_6")) self.label_1 = QtGui.QLabel(self) self.label_1.setGeometry(QtCore.QRect(220, 100, 161, 371)) self.label_1.setObjectName(_fromUtf8("label")) self.label_1.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-weight:600; color:#ff0000;\">市面上的计算器,</span></p><p><span style=\" font-weight:600; color:#ff0000;\">没有适用于中学生的计算器</span></p><p><span style=\" font-weight:600; color:#ff0000;\">,功能并不全面,所以我</span></p><p><span style=\" font-weight:600; color:#ff0000;\">由此决定编写一个计算器</span></p><p><span style=\" font-weight:600; color:#ff0000;\">来为中学生服务.</span></p><p><span style=\" font-weight:600; color:#ff0000;\">这个计算器中学生</span></p><p><span style=\" font-weight:600; color:#ff0000;\">都可以用,主要考虑到</span></p><p><span style=\" font-weight:600; color:#ff0000;\">中学生计算器的不全面,</span></p><p><span style=\" font-weight:600; color:#ff0000;\">关于学习累了</span></p><p><span style=\" font-weight:600; color:#ff0000;\">还有益智小游戏可以玩.</span></p><p><span style=\" font-weight:600; color:#ff0000;\">此计算器由</span></p><p><span style=\" font-size:18pt; font-weight:600; color:#55007f;\">罗士勇</span><span style=\" font-weight:600; color:#ff0000;\">制作</span></p><p><span style=\" font-weight:600; color:#ff0000;\">并非低级语言,使用的是</span></p><p><span style=\" font-weight:600; color:#ff0000;\">Python.谢谢评价与欣赏!</span></p></body></html>", None)) QtCore.QMetaObject.connectSlotsByName(self) self.move(300, 400) self.setWindowTitle('main') self.setWindowIcon(QIcon('1.ico')) self.show() def closeEvent(self, event): reply = QtGui.QMessageBox.question(self, u'退出', u'你确定要退出吗?', QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.No) if reply == QtGui.QMessageBox.Yes: event.accept() else: event.ignore() class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def b(self): cft() def ab(self): a() def c(self): yxc() def d(self): yxs() def e(self): tx() def f(self): jx() def g(self): gg() def h(self): yzt1() def i(self): yzt() def k(self): kf() def l(self): sjhs() def m(self): RockPI() def n(self): cftmj() def o(self): yztmj() def initUI(self,parent=None): self.setObjectName(_fromUtf8("Dialog")) self.resize(431, 396) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(10, 100, 131, 51)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.ab) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 431, 101)) self.label.setObjectName(_fromUtf8("label")) self.pushButton_3 = QtGui.QPushButton(self) self.pushButton_3.setGeometry(QtCore.QRect(290, 160, 131, 51)) self.pushButton_3.setObjectName(_fromUtf8("pushButton_3")) self.pushButton_3.clicked.connect(self.b) self.pushButton_4 = QtGui.QPushButton(self) self.pushButton_4.setGeometry(QtCore.QRect(150, 160, 131, 51)) self.pushButton_4.setObjectName(_fromUtf8("pushButton_4")) self.pushButton_4.clicked.connect(self.c) self.pushButton_5 = QtGui.QPushButton(self) self.pushButton_5.setGeometry(QtCore.QRect(10, 160, 131, 51)) self.pushButton_5.setObjectName(_fromUtf8("pushButton_5")) self.pushButton_5.clicked.connect(self.d) self.pushButton_7 = QtGui.QPushButton(self) self.pushButton_7.setGeometry(QtCore.QRect(290, 100, 131, 51)) self.pushButton_7.setObjectName(_fromUtf8("pushButton_7")) self.pushButton_7.clicked.connect(self.e) self.pushButton_8 = QtGui.QPushButton(self) self.pushButton_8.setGeometry(QtCore.QRect(150, 100, 131, 51)) self.pushButton_8.setObjectName(_fromUtf8("pushButton_8")) self.pushButton_8.clicked.connect(self.f) self.pushButton_6 = QtGui.QPushButton(self) self.pushButton_6.setGeometry(QtCore.QRect(290, 220, 131, 51)) self.pushButton_6.setObjectName(_fromUtf8("pushButton_6")) self.pushButton_6.clicked.connect(self.g) self.pushButton_9 = QtGui.QPushButton(self) self.pushButton_9.setGeometry(QtCore.QRect(150, 220, 131, 51)) self.pushButton_9.setObjectName(_fromUtf8("pushButton_9")) self.pushButton_9.clicked.connect(self.h) self.pushButton_10 = QtGui.QPushButton(self) self.pushButton_10.setGeometry(QtCore.QRect(10, 220, 131, 51)) self.pushButton_10.setObjectName(_fromUtf8("pushButton_10")) self.pushButton_10.clicked.connect(self.i) self.pushButton_11 = QtGui.QPushButton(self) self.pushButton_11.setGeometry(QtCore.QRect(150, 280, 131, 51)) self.pushButton_11.setObjectName(_fromUtf8("pushButton_11")) self.pushButton_11.clicked.connect(self.k) self.pushButton_12 = QtGui.QPushButton(self) self.pushButton_12.setGeometry(QtCore.QRect(10, 280, 131, 51)) self.pushButton_12.setObjectName(_fromUtf8("pushButton_12")) self.pushButton_12.clicked.connect(self.k) self.pushButton_13 = QtGui.QPushButton(self) self.pushButton_13.setGeometry(QtCore.QRect(290, 280, 131, 51)) self.pushButton_13.setObjectName(_fromUtf8("pushButton_12")) self.pushButton_13.clicked.connect(self.l) self.pushButton_14 = QtGui.QPushButton(self) self.pushButton_14.setGeometry(QtCore.QRect(150, 340, 131, 51)) self.pushButton_14.setObjectName(_fromUtf8("pushButton_12")) self.pushButton_14.clicked.connect(self.m) self.pushButton_15 = QtGui.QPushButton(self) self.pushButton_15.setGeometry(QtCore.QRect(10, 340, 131, 51)) self.pushButton_15.setObjectName(_fromUtf8("pushButton_12")) self.pushButton_15.clicked.connect(self.n) self.pushButton_16 = QtGui.QPushButton(self) self.pushButton_16.setGeometry(QtCore.QRect(290, 340, 131, 51)) self.pushButton_16.setObjectName(_fromUtf8("pushButton_12")) self.pushButton_16.clicked.connect(self.o) QtCore.QMetaObject.connectSlotsByName(self) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() self.pushButton.setText(_translate("Dialog", "三角形面积", None)) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:24pt; font-weight:600; color:#00ff00;\">公</span><span style=\" font-size:24pt; font-weight:600; color:#0000ff;\">式</span><span style=\" font-size:24pt; font-weight:600; color:#ff0000;\">计</span><span style=\" font-size:24pt; font-weight:600; color:#f3ed31;\">算</span></p></body></html>", None)) self.pushButton_3.setText(_translate("Dialog", "长方体体积", None)) self.pushButton_4.setText(_translate("Dialog", "圆形周长", None)) self.pushButton_5.setText(_translate("Dialog", "圆形面积", None)) self.pushButton_7.setText(_translate("Dialog", "梯形面积", None)) self.pushButton_8.setText(_translate("Dialog", "矩形面积", None)) self.pushButton_6.setText(_translate("Dialog", "勾股定理", None)) self.pushButton_9.setText(_translate("Dialog", "圆锥体体积", None)) self.pushButton_10.setText(_translate("Dialog", "圆柱体体积", None)) self.pushButton_11.setText(_translate("Dialog", "乘方", None)) self.pushButton_12.setText(_translate("Dialog", "开2次方", None)) self.pushButton_13.setText(_translate("Dialog", "三角函数", None)) self.pushButton_14.setText(_translate("Dialog", "精确算π", None)) self.pushButton_15.setText(_translate("Dialog", "长方体面积", None)) self.pushButton_16.setText(_translate("Dialog", "圆柱体面积", None)) qe = QtCore.QEventLoop() # line 3 qe.exec_() class cftmj(QtGui.QWidget): def cftmj1(self): try: a1 = float(self.lineEdit.text()) a2 = float(self.lineEdit_2.text()) a3 = float(self.lineEdit_3.text()) if a2 > 0 and a1 > 0 and a3 > 0: self.a4 = str((a1*a2*2) (a1*a3*2) (a2*a3*2)) self.textBrowser.setText(self.a4) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def __init__(self): """Constructor""" super(cftmj, self).__init__() self.cftmjUI() def cftmjUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(331, 301) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 331, 81)) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtGui.QLabel(self) self.label_2.setGeometry(QtCore.QRect(20, 80, 101, 31)) self.label_2.setObjectName(_fromUtf8("label_2")) self.label_3 = QtGui.QLabel(self) self.label_3.setGeometry(QtCore.QRect(20, 120, 101, 31)) self.label_3.setObjectName(_fromUtf8("label_3")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(60, 89, 261, 21)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.lineEdit_2 = QtGui.QLineEdit(self) self.lineEdit_2.setGeometry(QtCore.QRect(60, 130, 261, 21)) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.textBrowser = QtGui.QTextBrowser(self) self.textBrowser.setGeometry(QtCore.QRect(40, 240, 256, 51)) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(110, 200, 111, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.cftmj1) self.lineEdit_3 = QtGui.QLineEdit(self) self.lineEdit_3.setGeometry(QtCore.QRect(60, 170, 261, 21)) self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3")) self.label_4 = QtGui.QLabel(self) self.label_4.setGeometry(QtCore.QRect(20, 160, 101, 31)) self.label_4.setObjectName(_fromUtf8("label_4")) QtCore.QMetaObject.connectSlotsByName(self) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:36pt; font-weight:600; color:#ff0000;\">长</span><span style=\" font-size:36pt; font-weight:600; color:#55007f;\">方</span><span style=\" font-size:36pt; font-weight:600; color:#0055ff;\">体</span><span style=\" font-size:36pt; font-weight:600; color:#550000;\">面</span><span style=\" font-size:36pt; font-weight:600; color:#f1f100;\">积</span></p></body></html>", None)) self.label_2.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">长:</span></p></body></html>", None)) self.label_3.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">高:</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "计算", None)) self.label_4.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">宽:</span></p></body></html>", None)) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class yztmj(QtGui.QWidget): def yztmj1(self): try: a1 = float(self.lineEdit.text()) a2 = float(self.lineEdit_2.text()) a3 = float(self.lineEdit_3.text()) if a2 > 0 and a1 > 0 and a3 > 0: self.a4 = str((a1*2*a3*a2) (a1*a1*a3*2)) self.textBrowser.setText(self.a4) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def __init__(self): """Constructor""" super(yztmj, self).__init__() self.yztmjUI() def yztmjUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(331, 301) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 331, 81)) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtGui.QLabel(self) self.label_2.setGeometry(QtCore.QRect(20, 80, 101, 31)) self.label_2.setObjectName(_fromUtf8("label_2")) self.label_3 = QtGui.QLabel(self) self.label_3.setGeometry(QtCore.QRect(20, 120, 101, 31)) self.label_3.setObjectName(_fromUtf8("label_3")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(60, 89, 261, 21)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.lineEdit_2 = QtGui.QLineEdit(self) self.lineEdit_2.setGeometry(QtCore.QRect(60, 130, 261, 21)) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.textBrowser = QtGui.QTextBrowser(self) self.textBrowser.setGeometry(QtCore.QRect(40, 240, 256, 51)) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(110, 200, 111, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.yztmj1) self.lineEdit_3 = QtGui.QLineEdit(self) self.lineEdit_3.setGeometry(QtCore.QRect(60, 170, 261, 21)) self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3")) self.label_4 = QtGui.QLabel(self) self.label_4.setGeometry(QtCore.QRect(20, 160, 101, 31)) self.label_4.setObjectName(_fromUtf8("label_4")) QtCore.QMetaObject.connectSlotsByName(self) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:36pt; font-weight:600; color:#ff0000;\">圆</span><span style=\" font-size:36pt; font-weight:600; color:#55007f;\">柱</span><span style=\" font-size:36pt; font-weight:600; color:#0055ff;\">体</span><span style=\" font-size:36pt; font-weight:600; color:#550000;\">面</span><span style=\" font-size:36pt; font-weight:600; color:#f1f100;\">积</span></p></body></html>", None)) self.label_2.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">半径:</span></p></body></html>", None)) self.label_3.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">高:</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "计算", None)) self.label_4.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">π:</span></p></body></html>", None)) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class RockPI(QtGui.QWidget): def __init__(self, parent=None): super(RockPI, self).__init__(parent) self.resize(480, 320) spinLabel = QtGui.QLabel(u"位数: ") self.spinBox = QtGui.QSpinBox() self.spinBox.setMaximum(100000) resultLabel = QtGui.QLabel(u"结果: ") self.resultText = QtGui.QTextEdit() self.resultText.setReadOnly(True) self.startButton = QtGui.QPushButton(u"开始") self.resetButton = QtGui.QPushButton(u"重置") buttonLayout2 = QtGui.QHBoxLayout() buttonLayout2.addWidget(self.startButton) buttonLayout2.addWidget(self.resetButton) mainLayout = QtGui.QGridLayout() mainLayout.addWidget(spinLabel, 0, 0) mainLayout.addWidget(self.spinBox, 0, 1) mainLayout.addWidget(resultLabel, 1, 0, QtCore.Qt.AlignTop) mainLayout.addWidget(self.resultText, 1, 1) mainLayout.addLayout(buttonLayout2, 3, 1) self.setLayout(mainLayout) self.setWindowTitle(u"公式计算") #self.setWindowIcon(QtGui.QIcon('pi.png')) Icon for Windows self.timer = None self.connect(self.startButton, QtCore.SIGNAL("clicked()"), self.start) self.connect(self.resetButton, QtCore.SIGNAL("clicked()"), self.reset) self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() def updateResult(self, value): newValue = self.resultText.toPlainText() value self.resultText.setText(newValue) if len(newValue)==(self.spinBox.value() 1): self.startButton.setText(u"开始") self.startButton.setEnabled(False) def reset(self): if self.timer: self.disconnect(self.timer, QtCore.SIGNAL("updateresult"), self.updateResult) self.timer.stop() self.timer.quit() self.timer.wait() self.timer.deleteLater() self.timer = None self.resultText.clear() self.spinBox.setValue(0) self.startButton.setText(u"开始") self.startButton.setEnabled(True) self.disconnect(self.startButton, QtCore.SIGNAL("clicked()"), self.suspend) self.connect(self.startButton, QtCore.SIGNAL("clicked()"), self.start) def start(self): self.times = self.spinBox.value() if not self.times: return if not self.timer: self.timer = Timer(self.times) self.connect(self.timer, QtCore.SIGNAL("updateresult"), self.updateResult) self.timer.start() self.startButton.setText(u"暂停") self.disconnect(self.startButton, QtCore.SIGNAL("clicked()"), self.start) self.connect(self.startButton, QtCore.SIGNAL("clicked()"), self.suspend) def suspend(self): self.timer.stop() self.startButton.setText(u"开始") self.disconnect(self.startButton, QtCore.SIGNAL("clicked()"), self.suspend) self.connect(self.startButton, QtCore.SIGNAL("clicked()"), self.start) class Timer(QtCore.QThread): def __init__(self, times, parent=None): super(Timer, self).__init__(parent) self.stoped = False self.mutex = QtCore.QMutex() #Locker self.pi = pi_digits() self.times = times self.printed = False self.count = 0 def run(self): with QtCore.QMutexLocker(self.mutex): self.stoped = False while True: if self.stoped or (self.count==self.times): return value = self.pi.next() if not self.printed: value = str(value) "." self.printed = True self.emit(QtCore.SIGNAL("updateresult"), str(value)) self.count = 1 sleep(0.1) def stop(self): with QtCore.QMutexLocker(self.mutex): self.stoped = True def pi_digits(): """generator for digits of pi""" q,r,t,k,n,l = 1,0,1,1,3,3 while True: if 4*q r-t < n*t: yield n q,r,t,k,n,l = (10*q,10*(r-n*t),t,k,(10*(3*q r))/t-10*n,l) else: q,r,t,k,n,l = (q*k,(2*q r)*l,t*l,k 1,(q*(7*k 2) r*l)/(t*l),l 2) class a(QtGui.QWidget): def __init__(self): """Constructor""" super(a, self).__init__() self.ac() def aa(self): try: a1 = float(self.lineEdit.text()) a2 = float(self.lineEdit_2.text()) if a1 > 0 and a2 >0: self.a3 = str(a1*a2/2) self.textBrowser.setText(self.a3) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def ac(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(331, 264) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 331, 81)) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtGui.QLabel(self) self.label_2.setGeometry(QtCore.QRect(20, 80, 101, 31)) self.label_2.setObjectName(_fromUtf8("label_2")) self.label_3 = QtGui.QLabel(self) self.label_3.setGeometry(QtCore.QRect(20, 120, 101, 31)) self.label_3.setObjectName(_fromUtf8("label_3")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(60, 89, 261, 21)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.lineEdit_2 = QtGui.QLineEdit(self) self.lineEdit_2.setGeometry(QtCore.QRect(60, 130, 261, 21)) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.textBrowser = QtGui.QTextBrowser(self) self.textBrowser.setGeometry(QtCore.QRect(40, 200, 256, 51)) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(110, 160, 111, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.aa) QtCore.QMetaObject.connectSlotsByName(self) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:36pt; font-weight:600; color:#00ff00;\">三</span><span style=\" font-size:36pt; font-weight:600; color:#ffaa7f;\">角</span><span style=\" font-size:36pt; font-weight:600; color:#0055ff;\">形</span><span style=\" font-size:36pt; font-weight:600; color:#550000;\">面</span><span style=\" font-size:36pt; font-weight:600; color:#f1f100;\">积</span></p></body></html>", None)) self.label_2.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">底:</span></p></body></html>", None)) self.label_3.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">高:</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "计算", None)) qe = QtCore.QEventLoop() # line 3 qe.exec_() class cft(QtGui.QWidget): def cft1(self): try: a1 = float(self.lineEdit.text()) a2 = float(self.lineEdit_2.text()) a3 = float(self.lineEdit_3.text()) if a2 > 0 and a1 > 0 and a3 > 0: self.a4 = str(a1*a2*a3) self.textBrowser.setText(self.a4) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def __init__(self): """Constructor""" super(cft, self).__init__() self.cftUI() def cftUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(331, 301) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 331, 81)) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtGui.QLabel(self) self.label_2.setGeometry(QtCore.QRect(20, 80, 101, 31)) self.label_2.setObjectName(_fromUtf8("label_2")) self.label_3 = QtGui.QLabel(self) self.label_3.setGeometry(QtCore.QRect(20, 120, 101, 31)) self.label_3.setObjectName(_fromUtf8("label_3")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(60, 89, 261, 21)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.lineEdit_2 = QtGui.QLineEdit(self) self.lineEdit_2.setGeometry(QtCore.QRect(60, 130, 261, 21)) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.textBrowser = QtGui.QTextBrowser(self) self.textBrowser.setGeometry(QtCore.QRect(40, 240, 256, 51)) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(110, 200, 111, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.cft1) self.lineEdit_3 = QtGui.QLineEdit(self) self.lineEdit_3.setGeometry(QtCore.QRect(60, 170, 261, 21)) self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3")) self.label_4 = QtGui.QLabel(self) self.label_4.setGeometry(QtCore.QRect(20, 160, 101, 31)) self.label_4.setObjectName(_fromUtf8("label_4")) QtCore.QMetaObject.connectSlotsByName(self) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:36pt; font-weight:600; color:#ff0000;\">长</span><span style=\" font-size:36pt; font-weight:600; color:#55007f;\">方</span><span style=\" font-size:36pt; font-weight:600; color:#0055ff;\">体</span><span style=\" font-size:36pt; font-weight:600; color:#550000;\">体</span><span style=\" font-size:36pt; font-weight:600; color:#f1f100;\">积</span></p></body></html>", None)) self.label_2.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">长:</span></p></body></html>", None)) self.label_3.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">高:</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "计算", None)) self.label_4.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">宽:</span></p></body></html>", None)) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class yxc(QtGui.QWidget): def yxc1(self): try: a1 = float(self.lineEdit.text()) a2 = float(self.lineEdit_2.text()) if a2 > 0 and a1 > 0: self.a3 = str(a1*a2*2) self.textBrowser.setText(self.a3) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def __init__(self): """Constructor""" super(yxc, self).__init__() self.yxcUI() def yxcUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(331, 264) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 331, 81)) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtGui.QLabel(self) self.label_2.setGeometry(QtCore.QRect(20, 80, 101, 31)) self.label_2.setObjectName(_fromUtf8("label_2")) self.label_3 = QtGui.QLabel(self) self.label_3.setGeometry(QtCore.QRect(20, 120, 101, 31)) self.label_3.setObjectName(_fromUtf8("label_3")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(60, 89, 261, 21)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.lineEdit_2 = QtGui.QLineEdit(self) self.lineEdit_2.setGeometry(QtCore.QRect(60, 130, 261, 21)) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.textBrowser = QtGui.QTextBrowser(self) self.textBrowser.setGeometry(QtCore.QRect(40, 200, 256, 51)) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(110, 160, 111, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.yxc1) QtCore.QMetaObject.connectSlotsByName(self) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:36pt; font-weight:600; color:#ff0000;\">圆</span><span style=\" font-size:36pt; font-weight:600; color:#0055ff;\">形</span><span style=\" font-size:36pt; font-weight:600; color:#550000;\">周</span><span style=\" font-size:36pt; font-weight:600; color:#f1f100;\">长</span></p></body></html>", None)) self.label_2.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">半径:</span></p></body></html>", None)) self.label_3.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">π:</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "计算", None)) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class yxs(QtGui.QWidget): def yxs1(self): try: a1 = float(self.lineEdit.text()) a2 = float(self.lineEdit_2.text()) if a2 > 0 and a1 > 0: self.a3 = str(a1*a2*a1) self.textBrowser.setText(self.a3) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def __init__(self): """Constructor""" super(yxs, self).__init__() self.yxsUI() def yxsUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(331, 264) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 331, 81)) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtGui.QLabel(self) self.label_2.setGeometry(QtCore.QRect(20, 80, 101, 31)) self.label_2.setObjectName(_fromUtf8("label_2")) self.label_3 = QtGui.QLabel(self) self.label_3.setGeometry(QtCore.QRect(20, 120, 101, 31)) self.label_3.setObjectName(_fromUtf8("label_3")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(60, 89, 261, 21)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.lineEdit_2 = QtGui.QLineEdit(self) self.lineEdit_2.setGeometry(QtCore.QRect(60, 130, 261, 21)) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.textBrowser = QtGui.QTextBrowser(self) self.textBrowser.setGeometry(QtCore.QRect(40, 200, 256, 51)) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(110, 160, 111, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.yxs1) QtCore.QMetaObject.connectSlotsByName(self) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:36pt; font-weight:600; color:#ff0000;\">圆</span><span style=\" font-size:36pt; font-weight:600; color:#0055ff;\">形</span><span style=\" font-size:36pt; font-weight:600; color:#550000;\">面</span><span style=\" font-size:36pt; font-weight:600; color:#f1f100;\">积</span></p></body></html>", None)) self.label_2.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">半径:</span></p></body></html>", None)) self.label_3.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">π:</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "计算", None)) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class tx(QtGui.QWidget): def tx1(self): try: a1 = float(self.lineEdit.text()) a2 = float(self.lineEdit_2.text()) a3 = float(self.lineEdit_3.text()) if a2 > 0 and a1 > 0 and a3 > 0: self.a4 = str((a1 a2)*a3/2) self.textBrowser.setText(self.a4) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def __init__(self): """Constructor""" super(tx, self).__init__() self.txUI() def txUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(331, 301) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 331, 81)) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtGui.QLabel(self) self.label_2.setGeometry(QtCore.QRect(20, 80, 101, 31)) self.label_2.setObjectName(_fromUtf8("label_2")) self.label_3 = QtGui.QLabel(self) self.label_3.setGeometry(QtCore.QRect(20, 120, 101, 31)) self.label_3.setObjectName(_fromUtf8("label_3")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(60, 89, 261, 21)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.lineEdit_2 = QtGui.QLineEdit(self) self.lineEdit_2.setGeometry(QtCore.QRect(60, 130, 261, 21)) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.textBrowser = QtGui.QTextBrowser(self) self.textBrowser.setGeometry(QtCore.QRect(40, 240, 256, 51)) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(110, 200, 111, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.tx1) self.lineEdit_3 = QtGui.QLineEdit(self) self.lineEdit_3.setGeometry(QtCore.QRect(60, 170, 261, 21)) self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3")) self.label_4 = QtGui.QLabel(self) self.label_4.setGeometry(QtCore.QRect(20, 160, 101, 31)) self.label_4.setObjectName(_fromUtf8("label_4")) QtCore.QMetaObject.connectSlotsByName(self) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:36pt; font-weight:600; color:#ff0000;\">梯</span><span style=\" font-size:36pt; font-weight:600; color:#55007f;\">形</span><span style=\" font-size:36pt; font-weight:600; color:#0055ff;\">面</span><span style=\" font-size:36pt; font-weight:600; color:#550000;\">积</span></p></body></html>", None)) self.label_2.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">上底:</span></p></body></html>", None)) self.label_3.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">下底:</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "计算", None)) self.label_4.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">高:</span></p></body></html>", None)) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class jx(QtGui.QWidget): def jx1(self): try: a1 = float(self.lineEdit.text()) a2 = float(self.lineEdit_2.text()) if a2 > 0 and a1 > 0: self.a3 = str(a1*a2) self.textBrowser.setText(self.a3) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def __init__(self): """Constructor""" super(jx, self).__init__() self.jxUI() def jxUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(331, 264) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 331, 81)) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtGui.QLabel(self) self.label_2.setGeometry(QtCore.QRect(20, 80, 101, 31)) self.label_2.setObjectName(_fromUtf8("label_2")) self.label_3 = QtGui.QLabel(self) self.label_3.setGeometry(QtCore.QRect(20, 120, 101, 31)) self.label_3.setObjectName(_fromUtf8("label_3")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(60, 89, 261, 21)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.lineEdit_2 = QtGui.QLineEdit(self) self.lineEdit_2.setGeometry(QtCore.QRect(60, 130, 261, 21)) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.textBrowser = QtGui.QTextBrowser(self) self.textBrowser.setGeometry(QtCore.QRect(40, 200, 256, 51)) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(110, 160, 111, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.jx1) QtCore.QMetaObject.connectSlotsByName(self) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:36pt; font-weight:600; color:#ff0000;\">矩</span><span style=\" font-size:36pt; font-weight:600; color:#0055ff;\">形</span><span style=\" font-size:36pt; font-weight:600; color:#550000;\">面</span><span style=\" font-size:36pt; font-weight:600; color:#f1f100;\">积</span></p></body></html>", None)) self.label_2.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">长:</span></p></body></html>", None)) self.label_3.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">宽:</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "计算", None)) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class gg(QtGui.QWidget): def gg1(self): try: a1 = float(self.lineEdit.text()) a2 = float(self.lineEdit_2.text()) if a2 > 0 and a1 > 0: self.a3 = str(math.sqrt(((a1*a1) (a2*a2)))) self.textBrowser.setText(self.a3) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def __init__(self): """Constructor""" super(gg, self).__init__() self.ggUI() def ggUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(331, 264) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 331, 81)) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtGui.QLabel(self) self.label_2.setGeometry(QtCore.QRect(20, 80, 101, 31)) self.label_2.setObjectName(_fromUtf8("label_2")) self.label_3 = QtGui.QLabel(self) self.label_3.setGeometry(QtCore.QRect(20, 120, 101, 31)) self.label_3.setObjectName(_fromUtf8("label_3")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(60, 89, 261, 21)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.lineEdit_2 = QtGui.QLineEdit(self) self.lineEdit_2.setGeometry(QtCore.QRect(60, 130, 261, 21)) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.textBrowser = QtGui.QTextBrowser(self) self.textBrowser.setGeometry(QtCore.QRect(40, 200, 256, 51)) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(110, 160, 111, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.gg1) QtCore.QMetaObject.connectSlotsByName(self) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:36pt; font-weight:600; color:#ff0000;\">勾</span><span style=\" font-size:36pt; font-weight:600; color:#0055ff;\">股</span><span style=\" font-size:36pt; font-weight:600; color:#550000;\">定</span><span style=\" font-size:36pt; font-weight:600; color:#f1f100;\">理</span></p></body></html>", None)) self.label_2.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">勾:</span></p></body></html>", None)) self.label_3.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">股:</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "计算", None)) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class yzt1(QtGui.QWidget): def yzt2(self): try: a1 = float(self.lineEdit.text()) a2 = float(self.lineEdit_2.text()) a3 = float(self.lineEdit_3.text()) if a2 > 0 and a1 > 0 and a3 > 0: self.a4 = str(a1*a1*a2*a3/3) self.textBrowser.setText(self.a4) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def __init__(self): """Constructor""" super(yzt1, self).__init__() self.yzt1UI() def yzt1UI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(331, 301) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 331, 81)) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtGui.QLabel(self) self.label_2.setGeometry(QtCore.QRect(20, 80, 101, 31)) self.label_2.setObjectName(_fromUtf8("label_2")) self.label_3 = QtGui.QLabel(self) self.label_3.setGeometry(QtCore.QRect(20, 120, 101, 31)) self.label_3.setObjectName(_fromUtf8("label_3")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(60, 89, 261, 21)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.lineEdit_2 = QtGui.QLineEdit(self) self.lineEdit_2.setGeometry(QtCore.QRect(60, 130, 261, 21)) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.textBrowser = QtGui.QTextBrowser(self) self.textBrowser.setGeometry(QtCore.QRect(40, 240, 256, 51)) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(110, 200, 111, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.yzt2) self.lineEdit_3 = QtGui.QLineEdit(self) self.lineEdit_3.setGeometry(QtCore.QRect(60, 170, 261, 21)) self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3")) self.label_4 = QtGui.QLabel(self) self.label_4.setGeometry(QtCore.QRect(20, 160, 101, 31)) self.label_4.setObjectName(_fromUtf8("label_4")) QtCore.QMetaObject.connectSlotsByName(self) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:36pt; font-weight:600; color:#ff0000;\">圆</span><span style=\" font-size:36pt; font-weight:600; color:#55007f;\">锥</span><span style=\" font-size:36pt; font-weight:600; color:#0055ff;\">体</span><span style=\" font-size:36pt; font-weight:600; color:#550000;\">体</span><span style=\" font-size:36pt; font-weight:600; color:#f1f100;\">积</span></p></body></html>", None)) self.label_2.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">半径:</span></p></body></html>", None)) self.label_3.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">高:</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "计算", None)) self.label_4.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">π:</span></p></body></html>", None)) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class yzt(QtGui.QWidget): def yzt3(self): try: a1 = float(self.lineEdit.text()) a2 = float(self.lineEdit_2.text()) a3 = float(self.lineEdit_3.text()) if a2 > 0 and a1 > 0 and a3 > 0: self.a4 = str(a1*a1*a2*a3) self.textBrowser.setText(self.a4) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def __init__(self): """Constructor""" super(yzt, self).__init__() self.yztUI() def yztUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(331, 301) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 331, 81)) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtGui.QLabel(self) self.label_2.setGeometry(QtCore.QRect(20, 80, 101, 31)) self.label_2.setObjectName(_fromUtf8("label_2")) self.label_3 = QtGui.QLabel(self) self.label_3.setGeometry(QtCore.QRect(20, 120, 101, 31)) self.label_3.setObjectName(_fromUtf8("label_3")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(60, 89, 261, 21)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.lineEdit_2 = QtGui.QLineEdit(self) self.lineEdit_2.setGeometry(QtCore.QRect(60, 130, 261, 21)) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.textBrowser = QtGui.QTextBrowser(self) self.textBrowser.setGeometry(QtCore.QRect(40, 240, 256, 51)) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(110, 200, 111, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.yzt3) self.lineEdit_3 = QtGui.QLineEdit(self) self.lineEdit_3.setGeometry(QtCore.QRect(60, 170, 261, 21)) self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3")) self.label_4 = QtGui.QLabel(self) self.label_4.setGeometry(QtCore.QRect(20, 160, 101, 31)) self.label_4.setObjectName(_fromUtf8("label_4")) QtCore.QMetaObject.connectSlotsByName(self) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:36pt; font-weight:600; color:#ff0000;\">圆</span><span style=\" font-size:36pt; font-weight:600; color:#55007f;\">柱</span><span style=\" font-size:36pt; font-weight:600; color:#0055ff;\">体</span><span style=\" font-size:36pt; font-weight:600; color:#550000;\">体</span><span style=\" font-size:36pt; font-weight:600; color:#f1f100;\">积</span></p></body></html>", None)) self.label_2.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">半径:</span></p></body></html>", None)) self.label_3.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">高:</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "计算", None)) self.label_4.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">π:</span></p></body></html>", None)) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class kf(QtGui.QWidget): def kf1(self): try: a1 = float(self.lineEdit_2.text()) a2 = float(self.lineEdit_3.text()) if a2 > 0 and a1 > 0: self.a3 = str(a1**a2) self.textBrowser_2.setText(self.a3) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!(有可能太大了)') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!(有可能太大了)') def a(self): try: a1 = float(self.lineEdit.text()) if a1 > 0: self.a3 = str(math.sqrt(a1)) self.textBrowser.setText(self.a3) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def __init__(self): """Constructor""" super(kf, self).__init__() self.kfUI() def kfUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(392, 391) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 391, 81)) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtGui.QLabel(self) self.label_2.setGeometry(QtCore.QRect(30, 80, 101, 31)) self.label_2.setObjectName(_fromUtf8("label_2")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(120, 90, 261, 21)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.textBrowser = QtGui.QTextBrowser(self) self.textBrowser.setGeometry(QtCore.QRect(70, 160, 256, 51)) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(130, 120, 111, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.a) self.label_3 = QtGui.QLabel(self) self.label_3.setGeometry(QtCore.QRect(30, 220, 101, 31)) self.label_3.setObjectName(_fromUtf8("label_3")) self.lineEdit_2 = QtGui.QLineEdit(self) self.lineEdit_2.setGeometry(QtCore.QRect(120, 230, 261, 21)) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.pushButton_2 = QtGui.QPushButton(self) self.pushButton_2.setGeometry(QtCore.QRect(130, 290, 111, 31)) self.pushButton_2.setObjectName(_fromUtf8("pushButton_2")) self.pushButton_2.clicked.connect(self.kf1) self.textBrowser_2 = QtGui.QTextBrowser(self) self.textBrowser_2.setGeometry(QtCore.QRect(70, 330, 256, 51)) self.textBrowser_2.setObjectName(_fromUtf8("textBrowser_2")) self.label_4 = QtGui.QLabel(self) self.label_4.setGeometry(QtCore.QRect(30, 250, 101, 31)) self.label_4.setObjectName(_fromUtf8("label_4")) self.lineEdit_3 = QtGui.QLineEdit(self) self.lineEdit_3.setGeometry(QtCore.QRect(120, 260, 261, 21)) self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3")) QtCore.QMetaObject.connectSlotsByName(self) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:36pt; font-weight:600; color:#ff5500;\">开方</span><span style=\" font-size:36pt; font-weight:600;\"/><span style=\" font-size:36pt; font-weight:600; color:#00ffff;\">&</span><span style=\" font-size:36pt; font-weight:600;\"/><span style=\" font-size:36pt; font-weight:600; color:#ff55ff;\">乘方</span></p></body></html>", None)) self.label_2.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">数(开方):</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "计算", None)) self.label_3.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">数(乘方):</span></p></body></html>", None)) self.pushButton_2.setText(_translate("Dialog", "计算", None)) self.label_4.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600;\">数(几方):</span></p></body></html>", None)) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class gonju(QtGui.QWidget): def gonju1(self): os.system('shutdown -a') QtGui.QMessageBox.information( self, 'information', "Finished" ) def shut(self): shut() def gonju2(self): rili() def __init__(self): super(gonju, self).__init__() self.gonjuUI() def gonjuUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(482, 298) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(0, 0, 481, 111)) self.label.setObjectName(_fromUtf8("label")) self.commandLinkButton = QtGui.QCommandLinkButton(self) self.commandLinkButton.setGeometry(QtCore.QRect(0, 110, 621, 61)) self.commandLinkButton.setObjectName(_fromUtf8("commandLinkButton")) self.commandLinkButton_2 = QtGui.QCommandLinkButton(self) self.commandLinkButton_2.setGeometry(QtCore.QRect(0, 170, 621, 61)) self.commandLinkButton_2.setObjectName(_fromUtf8("commandLinkButton_2")) self.commandLinkButton_3 = QtGui.QCommandLinkButton(self) self.commandLinkButton_3.setGeometry(QtCore.QRect(0, 230, 621, 61)) self.commandLinkButton_3.setObjectName(_fromUtf8("commandLinkButton_2")) self.commandLinkButton_3.setText(_translate("Dialog", "日历", None)) self.commandLinkButton_3.clicked.connect(self.gonju2) QtCore.QMetaObject.connectSlotsByName(self) self.setWindowTitle(_translate("Dialog", "Dialog", None)) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:28pt; font-weight:600; color:#ff0000;\">windows</span><span style=\" font-size:28pt; font-weight:600; color:#d4d400;\">小</span><span style=\" font-size:28pt; font-weight:600; color:#00aa00;\">工</span><span style=\" font-size:28pt; font-weight:600; color:#55007f;\">具</span></p></body></html>", None)) self.commandLinkButton.setText(_translate("Dialog", "定时关机", None)) self.commandLinkButton.clicked.connect(self.shut) self.commandLinkButton_2.setText(_translate("Dialog", "取消关机", None)) self.commandLinkButton_2.clicked.connect(self.gonju1) self.move(300, 400) self.setWindowTitle(u'小工具') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class shut(QtGui.QWidget): def shut1(self): try: d = int(self.lineEdit.text()) if d > 0: os.system('shutdown -s -t %d' % d) QtGui.QMessageBox.information( self, 'information', "Finished" ) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def __init__(self): """Constructor""" super(shut, self).__init__() self.shutUI() def shutUI(self): self.setObjectName(_fromUtf8("Dialog")) self.setEnabled(True) self.resize(402, 230) self.setMouseTracking(True) self.setAcceptDrops(False) self.setAutoFillBackground(False) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(10, 50, 81, 31)) self.label.setObjectName(_fromUtf8("label")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(80, 60, 191, 20)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(140, 100, 91, 41)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.shut1) QtCore.QMetaObject.connectSlotsByName(self) self.setWindowTitle(_translate("Dialog", "Dialog", None)) self.label.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:12pt; font-weight:600;\">second:</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "确定", None)) self.move(300, 400) self.setWindowTitle('shutdown') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class rili(QtGui.QWidget): def __init__(self): """Constructor""" super(rili, self).__init__() self.riliUI() def riliUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(465, 337) self.groupBox = QtGui.QGroupBox(self) self.groupBox.setGeometry(QtCore.QRect(70, 60, 291, 221)) self.groupBox.setObjectName(_fromUtf8("groupBox")) self.calendarWidget = QtGui.QCalendarWidget(self.groupBox) self.calendarWidget.setGeometry(QtCore.QRect(20, 30, 248, 169)) self.calendarWidget.setObjectName(_fromUtf8("calendarWidget")) QtCore.QMetaObject.connectSlotsByName(self) self.groupBox.setTitle(_translate("Dialog", "GroupBox", None)) self.move(300, 400) self.setWindowTitle(u'公式计算') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class sjhs(QtGui.QWidget): def sin1(self): try: d = float(self.lineEdit.text()) if d > 0: self.a1 = str(math.sin(math.radians(d))) self.textBrowser.setText(self.a1) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def cos1(self): try: g = float(self.lineEdit_2.text()) if g > 0: self.a2 = str(math.cos(math.radians(g))) self.textBrowser_3.setText(self.a2) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def tan1(self): try: w = float(self.lineEdit_3.text()) if w > 0: self.a3 = str(math.cos(math.radians(w))) self.textBrowser_2.setText(self.a3) else: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') except: QtGui.QMessageBox.critical(self,'Error',u'你输入的字符不正确!') def __init__(self): super(sjhs, self).__init__() self.sjhsUI() def sjhsUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(502, 372) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(30, 80, 71, 21)) self.label.setObjectName(_fromUtf8("label")) self.lineEdit = QtGui.QLineEdit(self) self.lineEdit.setGeometry(QtCore.QRect(100, 80, 251, 20)) self.lineEdit.setObjectName(_fromUtf8("lineEdit")) self.label_2 = QtGui.QLabel(self) self.label_2.setGeometry(QtCore.QRect(30, 170, 71, 21)) self.label_2.setObjectName(_fromUtf8("label_2")) self.label_3 = QtGui.QLabel(self) self.label_3.setGeometry(QtCore.QRect(30, 260, 71, 21)) self.label_3.setObjectName(_fromUtf8("label_3")) self.lineEdit_2 = QtGui.QLineEdit(self) self.lineEdit_2.setGeometry(QtCore.QRect(100, 170, 251, 20)) self.lineEdit_2.setObjectName(_fromUtf8("lineEdit_2")) self.lineEdit_3 = QtGui.QLineEdit(self) self.lineEdit_3.setGeometry(QtCore.QRect(100, 260, 251, 20)) self.lineEdit_3.setObjectName(_fromUtf8("lineEdit_3")) self.textBrowser = QtGui.QTextBrowser(self) self.textBrowser.setGeometry(QtCore.QRect(370, 60, 121, 61)) self.textBrowser.setObjectName(_fromUtf8("textBrowser")) self.textBrowser_2 = QtGui.QTextBrowser(self) self.textBrowser_2.setGeometry(QtCore.QRect(370, 240, 121, 61)) self.textBrowser_2.setObjectName(_fromUtf8("textBrowser_2")) self.textBrowser_3 = QtGui.QTextBrowser(self) self.textBrowser_3.setGeometry(QtCore.QRect(370, 150, 121, 61)) self.textBrowser_3.setObjectName(_fromUtf8("textBrowser_3")) self.pushButton = QtGui.QPushButton(self) self.pushButton.setGeometry(QtCore.QRect(160, 120, 121, 31)) self.pushButton.setObjectName(_fromUtf8("pushButton")) self.pushButton.clicked.connect(self.sin1) self.pushButton_2 = QtGui.QPushButton(self) self.pushButton_2.setGeometry(QtCore.QRect(160, 210, 121, 31)) self.pushButton_2.setObjectName(_fromUtf8("pushButton_2")) self.pushButton_2.clicked.connect(self.cos1) self.pushButton_3 = QtGui.QPushButton(self) self.pushButton_3.setGeometry(QtCore.QRect(160, 300, 121, 31)) self.pushButton_3.setObjectName(_fromUtf8("pushButton_3")) self.pushButton_3.clicked.connect(self.tan1) self.label_4 = QtGui.QLabel(self) self.label_4.setGeometry(QtCore.QRect(60, 10, 291, 51)) self.label_4.setObjectName(_fromUtf8("label_4")) QtCore.QMetaObject.connectSlotsByName(self) self.move(300, 400) self.setWindowTitle(u'三角函数') self.show() self.label.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600; color:#0055ff;\">sin:</span></p></body></html>", None)) self.label_2.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600; color:#0055ff;\">cos:</span></p></body></html>", None)) self.label_3.setText(_translate("Dialog", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600; color:#0055ff;\">tan:</span></p></body></html>", None)) self.pushButton.setText(_translate("Dialog", "计算", None)) self.pushButton_2.setText(_translate("Dialog", "计算", None)) self.pushButton_3.setText(_translate("Dialog", "计算", None)) self.label_4.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:24pt; font-weight:600; color:#0000ff;\">三</span><span style=\" font-size:24pt; font-weight:600; color:#ff0000;\">角</span><span style=\" font-size:24pt; font-weight:600; color:#cece00;\">函</span><span style=\" font-size:24pt; font-weight:600; color:#00f000;\">数</span></p></body></html>", None)) qe = QtCore.QEventLoop() # line 3 qe.exec_() class Calculator(QtGui.QWidget): """""" #---------------------------------------------------------------------- def __init__(self): """Constructor""" super(Calculator, self).__init__() self.CalculatorUI() #---------------------------------------------------------------------- def CalculatorUI(self): """""" self.flag = 0 self.flag_equ = 0 self.flag_add = 0 #加 self.flag_sub = 0 #减 self.flag_mul = 0 #乘 self.flag_div = 0 #除 self.flag_flag = '' self.num_1 = '0' self.num_2 = '' self.num_3 = '' global lcd lcd = QtGui.QTextBrowser() lcd.setFixedHeight(190) lcd.setFont(QtGui.QFont("Microsoft YaHei", 20)) #lcd.setFixedWidth(100) lcd.setText('0'.decode('utf-8')) grid = QtGui.QGridLayout() self.setLayout(grid) #self.setMinimumSize(300, 300) #self.setMaximumSize(300, 300) #self.setGeometry( 200, 100, 200, 200 ) grid.setSpacing(0) grid.addWidget(lcd, 0, 0, 1, 4) button_1 = QtGui.QPushButton('1') button_2 = QtGui.QPushButton('2') button_3 = QtGui.QPushButton('3') button_4 = QtGui.QPushButton('4') button_5 = QtGui.QPushButton('5') button_6 = QtGui.QPushButton('6') button_7 = QtGui.QPushButton('7') button_8 = QtGui.QPushButton('8') button_9 = QtGui.QPushButton('9') button_0 = QtGui.QPushButton('0') button_dot = QtGui.QPushButton('.') button_equ = QtGui.QPushButton('=') button_div = QtGui.QPushButton('/') button_mul = QtGui.QPushButton('*') button_add = QtGui.QPushButton(' ') button_sub = QtGui.QPushButton('-') button_cls = QtGui.QPushButton('cls') button_0.setFixedSize(50, 50) button_1.setFixedSize(50, 50) button_2.setFixedSize(50, 50) button_3.setFixedSize(50, 50) button_4.setFixedSize(50, 50) button_5.setFixedSize(50, 50) button_6.setFixedSize(50, 50) button_7.setFixedSize(50, 50) button_8.setFixedSize(50, 50) button_9.setFixedSize(50, 50) button_dot.setFixedSize(50, 50) button_equ.setFixedSize(200, 50) button_div.setFixedSize(50, 50) button_mul.setFixedSize(50, 50) button_add.setFixedSize(50, 50) button_sub.setFixedSize(50, 50) button_cls.setFixedSize(50, 50) button_0.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_1.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_2.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_3.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_4.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_5.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_6.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_7.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_8.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_9.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_dot.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_equ.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_div.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_mul.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_add.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_sub.setFont(QtGui.QFont("Microsoft YaHei", 16)) button_cls.setFont(QtGui.QFont("Microsoft YaHei", 16)) grid.addWidget(button_7, 1,0) grid.addWidget(button_8, 1,1) grid.addWidget(button_9, 1,2) grid.addWidget(button_div, 1,3) grid.addWidget(button_4, 2,0) grid.addWidget(button_5, 2,1) grid.addWidget(button_6, 2,2) grid.addWidget(button_mul, 2,3) grid.addWidget(button_1, 3,0) grid.addWidget(button_2, 3,1) grid.addWidget(button_3, 3,2) grid.addWidget(button_sub, 3,3) grid.addWidget(button_0, 4,0) grid.addWidget(button_dot, 4,1) grid.addWidget(button_cls, 4,2) grid.addWidget(button_add, 4,3) grid.addWidget(button_equ, 5, 0, 1, 4) self.move(300, 400) self.setWindowTitle('Calculator') grid.setSizeConstraint(QtGui.QLayout.SetFixedSize) self.setWindowIcon(QIcon('1.ico')) self.show() self.connect(button_0,QtCore.SIGNAL('clicked()'),self.func_button_0) self.connect(button_1,QtCore.SIGNAL('clicked()'),self.func_button_1) self.connect(button_2,QtCore.SIGNAL('clicked()'),self.func_button_2) self.connect(button_3,QtCore.SIGNAL('clicked()'),self.func_button_3) self.connect(button_4,QtCore.SIGNAL('clicked()'),self.func_button_4) self.connect(button_5,QtCore.SIGNAL('clicked()'),self.func_button_5) self.connect(button_6,QtCore.SIGNAL('clicked()'),self.func_button_6) self.connect(button_7,QtCore.SIGNAL('clicked()'),self.func_button_7) self.connect(button_8,QtCore.SIGNAL('clicked()'),self.func_button_8) self.connect(button_9,QtCore.SIGNAL('clicked()'),self.func_button_9) self.connect(button_cls,QtCore.SIGNAL('clicked()'),self.func_button_cls) self.connect(button_dot,QtCore.SIGNAL('clicked()'),self.func_button_dot) self.connect(button_add,QtCore.SIGNAL('clicked()'),self.func_button_add) self.connect(button_sub,QtCore.SIGNAL('clicked()'),self.func_button_sub) self.connect(button_mul,QtCore.SIGNAL('clicked()'),self.func_button_mul) self.connect(button_div,QtCore.SIGNAL('clicked()'),self.func_button_div) self.connect(button_equ,QtCore.SIGNAL('clicked()'),self.func_button_equ) qe = QtCore.QEventLoop() # line 3 qe.exec_() #---------------------------------------------------------------------- def keyPressEvent(self, event): """""" if event.key() == QtCore.Qt.Key_Escape: self.close() if event.key() == QtCore.Qt.Key_0: self.func_button_0() if event.key() == QtCore.Qt.Key_1: self.func_button_1() if event.key() == QtCore.Qt.Key_2: self.func_button_2() if event.key() == QtCore.Qt.Key_3: self.func_button_3() if event.key() == QtCore.Qt.Key_4: self.func_button_4() if event.key() == QtCore.Qt.Key_5: self.func_button_5() if event.key() == QtCore.Qt.Key_6: self.func_button_6() if event.key() == QtCore.Qt.Key_7: self.func_button_7() if event.key() == QtCore.Qt.Key_8: self.func_button_8() if event.key() == QtCore.Qt.Key_9: self.func_button_9() if event.key() == QtCore.Qt.Key_Period: self.func_button_dot() if event.key() == QtCore.Qt.Key_Enter: self.func_button_equ() if event.key() == QtCore.Qt.Key_Plus: self.func_button_add() if event.key() == QtCore.Qt.Key_Minus: self.func_button_sub() if event.key() == QtCore.Qt.Key_Asterisk: self.func_button_mul() if event.key() == QtCore.Qt.Key_Slash: self.func_button_div() if event.key() == QtCore.Qt.Key_C: self.func_button_cls() #---------------------------------------------------------------------- def func_button_0(self): """""" if self.flag_equ == 0: if self.flag == 0: if self.num_1 == '0': #防止在QLineEdit里连续出现 0 ,比如 000.1 self.num_1 = '0' lcd.setText(self.num_1) else: self.num_1 = self.num_1 '0' lcd.setText(self.num_1) else: if self.num_2 == '0' or '': self.num_2 = '0' else: self.num_2 = self.num_2 '0' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else : self.flag_equ =1 #Important:点击等号之后,除clear按键以外的按键都失效,用pass代替也可以,这里只是为了方便以后添加更多功能所以用了flag #---------------------------------------------------------------------- def func_button_1(self): """""" if self.flag_equ == 0: if self.flag == 0: if self.num_1 == '0': self.num_1 = '1' lcd.setText(self.num_1) else: self.num_1 = self.num_1 '1' lcd.setText(self.num_1) else: if self.num_2 == '0' or '': self.num_2 = '1' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: self.num_2 = self.num_2 '1' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else : self.flag_equ =1 #---------------------------------------------------------------------- def func_button_2(self): """""" if self.flag_equ == 0: if self.flag == 0: if self.num_1 == '0': self.num_1 = '2' lcd.setText(self.num_1) else: self.num_1 = self.num_1 '2' lcd.setText(self.num_1) else: if self.num_2 == '0' or '': self.num_2 = '2' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: self.num_2 = self.num_2 '2' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else : self.flag_equ =1 #---------------------------------------------------------------------- def func_button_3(self): """""" if self.flag_equ == 0: if self.flag == 0: if self.num_1 == '0': self.num_1 = '3' lcd.setText(self.num_1) else: self.num_1 = self.num_1 '3' lcd.setText(self.num_1) else: if self.num_2 == '0' or '': self.num_2 = '3' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: self.num_2 = self.num_2 '3' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else : self.flag_equ =1 #---------------------------------------------------------------------- def func_button_4(self): """""" if self.flag_equ == 0: if self.flag == 0: if self.num_1 == '0': self.num_1 = '4' lcd.setText(self.num_1) else: self.num_1 = self.num_1 '4' lcd.setText(self.num_1) else: if self.num_2 == '0' or '': self.num_2 = '4' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: self.num_2 = self.num_2 '4' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else : self.flag_equ =1 #---------------------------------------------------------------------- def func_button_5(self): """""" if self.flag_equ == 0: if self.flag == 0: if self.num_1 == '0': self.num_1 = '5' lcd.setText(self.num_1) else: self.num_1 = self.num_1 '5' lcd.setText(self.num_1) else: if self.num_2 == '0' or '': self.num_2 = '3' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: self.num_2 = self.num_2 '5' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else : self.flag_equ =1 #---------------------------------------------------------------------- def func_button_6(self): """""" if self.flag_equ == 0: if self.flag == 0: if self.num_1 == '0': self.num_1 = '6' lcd.setText(self.num_1) else: self.num_1 = self.num_1 '6' lcd.setText(self.num_1) else: if self.num_2 == '0' or '': self.num_2 = '6' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: self.num_2 = self.num_2 '6' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else : self.flag_equ =1 #---------------------------------------------------------------------- def func_button_7(self): """""" if self.flag_equ == 0: if self.flag == 0: if self.num_1 == '0': self.num_1 = '7' lcd.setText(self.num_1) else: self.num_1 = self.num_1 '7' lcd.setText(self.num_1) else: if self.num_2 == '0' or '': self.num_2 = '7' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: self.num_2 = self.num_2 '7' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else : self.flag_equ =1 #---------------------------------------------------------------------- def func_button_8(self): """""" if self.flag_equ == 0: if self.flag == 0: if self.num_1 == '0': self.num_1 = '8' lcd.setText(self.num_1) else: self.num_1 = self.num_1 '8' lcd.setText(self.num_1) else: if self.num_2 == '0' or '': self.num_2 = '8' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: self.num_2 = self.num_2 '8' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else : self.flag_equ =1 #---------------------------------------------------------------------- def func_button_9(self): """""" if self.flag_equ == 0: if self.flag == 0: if self.num_1 == '0': self.num_1 = '9' lcd.setText(self.num_1) else: self.num_1 = self.num_1 '9' lcd.setText(self.num_1) else: if self.num_2 == '0' or '': self.num_2 = '9' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: self.num_2 = self.num_2 '9' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else : self.flag_equ =1 #---------------------------------------------------------------------- def func_button_dot(self): """""" if self.flag_equ == 0: if self.flag == 0: if '.' not in self.num_1: if self.num_1 == '0': self.num_1 = '0.' print (self.num_1) lcd.setText(self.num_1) else: self.num_1 = self.num_1 '.' lcd.setText(self.num_1) else: if '.' not in self.num_2: if self.num_2 == '': self.num_2 = '0.' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: self.num_2 = self.num_2 '.' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else : self.flag_equ =1 #---------------------------------------------------------------------- def func_button_cls(self): """""" self.num_1 = '0' self.num_2 = '' self.flag = 0 self.flag_equ = 0 self.flag_add = 0 self.flag_sub = 0 self.flag_mul = 0 self.flag_div = 0 lcd.setText(self.num_1) #---------------------------------------------------------------------- def func_button_add(self): """""" if self.flag == 0: self.flag = 1 self.flag_add = 1 self.flag_sub = 0 self.flag_mul = 0 self.flag_div = 0 self.flag_flag = ' ' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: pass #---------------------------------------------------------------------- def func_button_sub(self): """""" if self.flag == 0: if self.num_1 == '0': self.num_1 = '-' lcd.setText(self.num_1) #elif self.num_2 == '': #self.num_2 = '-' #lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: self.flag = 1 self.flag_add = 0 self.flag_sub = 1 self.flag_mul = 0 self.flag_div = 0 self.flag_flag = '-' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: if self.num_2 == '': self.num_2 = '-' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) #---------------------------------------------------------------------- def func_button_mul(self): """""" if self.flag == 0: self.flag = 1 self.flag_add = 0 self.flag_sub = 0 self.flag_mul = 1 self.flag_div = 0 self.flag_flag = '*' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: pass #---------------------------------------------------------------------- def func_button_div(self): """""" if self.flag == 0: self.flag = 1 self.flag_add = 0 self.flag_sub = 0 self.flag_mul = 0 self.flag_div = 1 self.flag_flag = '/' lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2) else: pass #---------------------------------------------------------------------- def func_button_equ(self): """""" if self.flag == 1: if self.flag_flag == ' ': if '.' in self.num_1: self.num_3 = str(float(self.num_1) float(self.num_2)) if '.' not in self.num_1: if '.' not in self.num_2: self.num_3 = str(int(self.num_1) int(self.num_2)) elif '.' in self.num_2: self.num_3 = str(float(self.num_1) float(self.num_2)) else: self.num_3 = str(int(self.num_1) int(self.num_2)) lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2 '\n=\n' self.num_3) self.flag = 0 self.num_1 = '0' self.num_2 = '' self.num_3 = '' elif self.flag_flag == '-': if '.' in self.num_1: self.num_3 = str(float(self.num_1) - float(self.num_2)) if '.' not in self.num_1: if '.' not in self.num_2: self.num_3 = str(int(self.num_1) - int(self.num_2)) elif '.' in self.num_2: self.num_3 = str(float(self.num_1) - float(self.num_2)) else: self.num_3 = str(int(self.num_1) - int(self.num_2)) lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2 '\n=\n' self.num_3) self.flag = 0 self.num_1 = '0' self.num_2 = '' self.num_3 = '' elif self.flag_flag == '*': if '.' in self.num_1: self.num_3 = str(float(self.num_1) * float(self.num_2)) if '.' not in self.num_1: if '.' not in self.num_2: self.num_3 = str(int(self.num_1) * int(self.num_2)) elif '.' in self.num_2: self.num_3 = str(float(self.num_1) * float(self.num_2)) else: self.num_3 = str(int(self.num_1) * int(self.num_2)) lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2 '\n=\n' self.num_3) self.flag = 0 self.num_1 = '0' self.num_2 = '' self.num_3 = '' elif self.flag_flag == '/': if self.num_2 == '0': lcd.setText("0不能作为除数!".decode('utf-8')) self.flag = 0 self.num_1 = '0' self.num_2 = '' self.num_3 = '' else: self.num_3 = float(self.num_1) / float(self.num_2) if (self.num_3 * 10) % 10 == 0: lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2 '\n=\n' str(int(self.num_3))) self.flag = 0 self.num_1 = '0' self.num_2 = '' self.num_3 = '' else: lcd.setText(self.num_1 '\n' self.flag_flag '\n' self.num_2 '\n=\n' str(float(self.num_3))) self.flag = 0 self.num_1 = '0' self.num_2 = '' self.num_3 = '' else: pass class about(QtGui.QWidget): def quit(self): sys.exit() def __init__(self): """Constructor""" super(about, self).__init__() self.aboutUI() def aboutUI(self): self.setObjectName(_fromUtf8("Dialog")) self.resize(879, 300) self.label = QtGui.QLabel(self) self.label.setGeometry(QtCore.QRect(40, 60, 771, 101)) self.label.setObjectName(_fromUtf8("label")) QtCore.QMetaObject.connectSlotsByName(self) self.setWindowTitle(_translate("Dialog", "Dialog", None)) self.label.setText(_translate("Dialog", "<html><head/><body><p align=\"center\"><span style=\" font-size:20pt; font-weight:600; color:#ff0000;\">This File made by Notch!</span><span style=\" font-size:26pt; font-weight:800; color:#55007f;\">制作人:罗士勇感谢使用!!</span></p></body></html>", None)) self.move(300, 400) self.setWindowTitle(u'小工具') self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class Tetris(QtGui.QMainWindow): def __init__(self): #QtGui.QMainWindow.__init__(self) super(Tetris, self).__init__() self.setGeometry(300, 300, 180, 380) self.setWindowTitle('Tetris') self.tetrisboard = Board(self) self.setCentralWidget(self.tetrisboard) self.statusbar = self.statusBar() self.connect(self.tetrisboard, QtCore.SIGNAL("messageToStatusbar(QString)"), self.statusbar, QtCore.SLOT("showMessage(QString)")) self.tetrisboard.start() self.center() def center(self): screen = QtGui.QDesktopWidget().screenGeometry() size = self.geometry() self.move((screen.width()-size.width())/2, (screen.height()-size.height())/2) QtGui.QMessageBox.information( self, "information", _fromUtf8("请使用上下左右键来玩俄罗斯方块") ) QtGui.QMessageBox.information( self, "information", _fromUtf8("请使用空格来加速降落.") ) self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() class Board(QtGui.QFrame): BoardWidth = 10 BoardHeight = 22 Speed = 300 def __init__(self, parent): #QtGui.QFrame.__init__(self, parent) super(Board, self).__init__(parent) self.timer = QtCore.QBasicTimer() self.isWaitingAfterLine = False self.curPiece = Shape() self.nextPiece = Shape() self.curX = 0 self.curY = 0 self.numLinesRemoved = 0 self.board = [] self.setFocusPolicy(QtCore.Qt.StrongFocus) self.isStarted = False self.isPaused = False self.clearBoard() self.nextPiece.setRandomShape() def shapeAt(self, x, y): return self.board[(y * Board.BoardWidth) x] def setShapeAt(self, x, y, shape): self.board[(y * Board.BoardWidth) x] = shape def squareWidth(self): return self.contentsRect().width() / Board.BoardWidth def squareHeight(self): return self.contentsRect().height() / Board.BoardHeight def start(self): if self.isPaused: return self.isStarted = True self.isWaitingAfterLine = False self.numLinesRemoved = 0 self.clearBoard() self.emit(QtCore.SIGNAL("messageToStatusbar(QString)"), str(self.numLinesRemoved)) self.newPiece() self.timer.start(Board.Speed, self) def pause(self): if not self.isStarted: return self.isPaused = not self.isPaused if self.isPaused: self.timer.stop() self.emit(QtCore.SIGNAL("messageToStatusbar(QString)"), "paused") else: self.timer.start(Board.Speed, self) self.emit(QtCore.SIGNAL("messageToStatusbar(QString)"), str(self.numLinesRemoved)) self.update() def paintEvent(self, event): painter = QtGui.QPainter(self) rect = self.contentsRect() boardTop = rect.bottom() - Board.BoardHeight * self.squareHeight() for i in range(Board.BoardHeight): for j in range(Board.BoardWidth): shape = self.shapeAt(j, Board.BoardHeight - i - 1) if shape != Tetrominoes.NoShape: self.drawSquare(painter, rect.left() j * self.squareWidth(), boardTop i * self.squareHeight(), shape) if self.curPiece.shape() != Tetrominoes.NoShape: for i in range(4): x = self.curX self.curPiece.x(i) y = self.curY - self.curPiece.y(i) self.drawSquare(painter, rect.left() x * self.squareWidth(), boardTop (Board.BoardHeight - y - 1) * self.squareHeight(), self.curPiece.shape()) def keyPressEvent(self, event): if not self.isStarted or self.curPiece.shape() == Tetrominoes.NoShape: QtGui.QWidget.keyPressEvent(self, event) return key = event.key() if key == QtCore.Qt.Key_P: self.pause() return if self.isPaused: return elif key == QtCore.Qt.Key_Left: self.tryMove(self.curPiece, self.curX - 1, self.curY) elif key == QtCore.Qt.Key_Right: self.tryMove(self.curPiece, self.curX 1, self.curY) elif key == QtCore.Qt.Key_Down: self.tryMove(self.curPiece.rotatedRight(), self.curX, self.curY) elif key == QtCore.Qt.Key_Up: self.tryMove(self.curPiece.rotatedLeft(), self.curX, self.curY) elif key == QtCore.Qt.Key_Space: self.dropDown() elif key == QtCore.Qt.Key_D: self.oneLineDown() else: QtGui.QWidget.keyPressEvent(self, event) def timerEvent(self, event): if event.timerId() == self.timer.timerId(): if self.isWaitingAfterLine: self.isWaitingAfterLine = False self.newPiece() else: self.oneLineDown() else: QtGui.QFrame.timerEvent(self, event) def clearBoard(self): for i in range(Board.BoardHeight * Board.BoardWidth): self.board.append(Tetrominoes.NoShape) def dropDown(self): newY = self.curY while newY > 0: if not self.tryMove(self.curPiece, self.curX, newY - 1): break newY -= 1 self.pieceDropped() def oneLineDown(self): if not self.tryMove(self.curPiece, self.curX, self.curY - 1): self.pieceDropped() def pieceDropped(self): for i in range(4): x = self.curX self.curPiece.x(i) y = self.curY - self.curPiece.y(i) self.setShapeAt(x, y, self.curPiece.shape()) self.removeFullLines() if not self.isWaitingAfterLine: self.newPiece() def removeFullLines(self): numFullLines = 0 rowsToRemove = [] for i in range(Board.BoardHeight): n = 0 for j in range(Board.BoardWidth): if not self.shapeAt(j, i) == Tetrominoes.NoShape: n = n 1 if n == 10: rowsToRemove.append(i) rowsToRemove.reverse() for m in rowsToRemove: for k in range(m, Board.BoardHeight): for l in range(Board.BoardWidth): self.setShapeAt(l, k, self.shapeAt(l, k 1)) numFullLines = numFullLines len(rowsToRemove) if numFullLines > 0: self.numLinesRemoved = self.numLinesRemoved numFullLines self.emit(QtCore.SIGNAL("messageToStatusbar(QString)"), str(self.numLinesRemoved)) self.isWaitingAfterLine = True self.curPiece.setShape(Tetrominoes.NoShape) self.update() def newPiece(self): self.curPiece = self.nextPiece self.nextPiece.setRandomShape() self.curX = Board.BoardWidth / 2 1 self.curY = Board.BoardHeight - 1 self.curPiece.minY() if not self.tryMove(self.curPiece, self.curX, self.curY): self.curPiece.setShape(Tetrominoes.NoShape) self.timer.stop() self.isStarted = False self.emit(QtCore.SIGNAL("messageToStatusbar(QString)"), "Game over") def tryMove(self, newPiece, newX, newY): for i in range(4): x = newX newPiece.x(i) y = newY - newPiece.y(i) if x < 0 or x >= Board.BoardWidth or y < 0 or y >= Board.BoardHeight: return False if self.shapeAt(x, y) != Tetrominoes.NoShape: return False self.curPiece = newPiece self.curX = newX self.curY = newY self.update() return True def drawSquare(self, painter, x, y, shape): colorTable = [0x000000, 0xCC6666, 0x66CC66, 0x6666CC, 0xCCCC66, 0xCC66CC, 0x66CCCC, 0xDAAA00] color = QtGui.QColor(colorTable[shape]) painter.fillRect(x 1, y 1, self.squareWidth() - 2, self.squareHeight() - 2, color) painter.setPen(color.light()) painter.drawLine(x, y self.squareHeight() - 1, x, y) painter.drawLine(x, y, x self.squareWidth() - 1, y) painter.setPen(color.dark()) painter.drawLine(x 1, y self.squareHeight() - 1, x self.squareWidth() - 1, y self.squareHeight() - 1) painter.drawLine(x self.squareWidth() - 1, y self.squareHeight() - 1, x self.squareWidth() - 1, y 1) class Tetrominoes(object): NoShape = 0 ZShape = 1 SShape = 2 LineShape = 3 TShape = 4 SquareShape = 5 LShape = 6 MirroredLShape = 7 class Shape(object): coordsTable = ( ((0, 0), (0, 0), (0, 0), (0, 0)), ((0, -1), (0, 0), (-1, 0), (-1, 1)), ((0, -1), (0, 0), (1, 0), (1, 1)), ((0, -1), (0, 0), (0, 1), (0, 2)), ((-1, 0), (0, 0), (1, 0), (0, 1)), ((0, 0), (1, 0), (0, 1), (1, 1)), ((-1, -1), (0, -1), (0, 0), (0, 1)), ((1, -1), (0, -1), (0, 0), (0, 1)) ) def __init__(self): self.coords = [[0,0] for i in range(4)] self.pieceShape = Tetrominoes.NoShape self.setShape(Tetrominoes.NoShape) def shape(self): return self.pieceShape def setShape(self, shape): table = Shape.coordsTable[shape] for i in range(4): for j in range(2): self.coords[i][j] = table[i][j] self.pieceShape = shape def setRandomShape(self): self.setShape(random.randint(1, 7)) def x(self, index): return self.coords[index][0] def y(self, index): return self.coords[index][1] def setX(self, index, x): self.coords[index][0] = x def setY(self, index, y): self.coords[index][1] = y def minX(self): m = self.coords[0][0] for i in range(4): m = min(m, self.coords[i][0]) return m def maxX(self): m = self.coords[0][0] for i in range(4): m = max(m, self.coords[i][0]) return m def minY(self): m = self.coords[0][1] for i in range(4): m = min(m, self.coords[i][1]) return m def maxY(self): m = self.coords[0][1] for i in range(4): m = max(m, self.coords[i][1]) return m def rotatedLeft(self): if self.pieceShape == Tetrominoes.SquareShape: return self result = Shape() result.pieceShape = self.pieceShape for i in range(4): result.setX(i, self.y(i)) result.setY(i, -self.x(i)) return result def rotatedRight(self): if self.pieceShape == Tetrominoes.SquareShape: return self result = Shape() result.pieceShape = self.pieceShape for i in range(4): result.setX(i, -self.y(i)) result.setY(i, self.x(i)) return result class Snake: def __init__(self): self.length = 4 self.posArray = [(3,0),(2,0),(1,0),(0,0)] self.isDead = 0 class Food: def __init__(self): self.isExist = 0 self.pos = (0,0) class SnakeGame(QWidget): def __init__(self): super(SnakeGame, self).__init__() self.timer = QTimer(self) #self.connect(timer, SIGNAL("timeout()"),self,SLOT("update()")) self.timer.timeout.connect(self.update) self.initGame() self.initUI() def initUI(self): #self.setGeometry(300, 300, 500, 300) self.setMaximumSize(500,330) self.setMinimumSize(500,330) self.setWindowTitle('tcs') QtGui.QMessageBox.information( self, "information", _fromUtf8("请使用空格来开始游戏或暂停游戏.") ) QtGui.QMessageBox.information( self, "information", _fromUtf8("使用上下左右键来控制.") ) QtGui.QMessageBox.information( self, "information", _fromUtf8("控制小蛇吃到黑色方块,不能撞到自己也不能撞到墙.") ) self.show() qe = QtCore.QEventLoop() # line 3 qe.exec_() def paintEvent(self, event): qp = QPainter() qp.begin(self) if self.isStart == -1: self.pause(event, qp) elif self.isStart == 0: self.readyGame(event, qp) elif self.isStart == 1: self.proceedGame(event, qp) else: self.overGame(event, qp) qp.end() def keyPressEvent(self, event): key = event.key() if self.isStart == 1: if key == Qt.Key_Left and self.tag != 'Right': self.xch = -1 self.ych = 0 self.tag = 'Left' if key == Qt.Key_Right and self.tag != 'Left': self.xch = 1 self.ych = 0 self.tag = 'Right' if key == Qt.Key_Down and self.tag != 'Up': self.ych = 1 self.xch = 0 self.tag = 'Down' if key == Qt.Key_Up and self.tag != 'Down': self.ych = -1 self.xch = 0 self.tag = 'Up' if key == Qt.Key_Space: if self.isStart == 0: self.isStart = 1 elif self.isStart == 2: self.initGame() self.isStart = 0 else: self.isStart = -self.isStart def drawSquare(self, qp, xx, yy): qp.drawRect(xx*10, yy*10, 10, 10) def drawBlackSquare(self, qp, xx, yy): qp.setBrush(QColor(0,0,0)) qp.drawRect(xx*10,yy*10,10,10) def drawSnake(self,qp): for a in self.snake.posArray: xx = a[0] yy = a[1] self.drawSquare(qp, xx, yy) def moveSnake(self): l = len(self.snake.posArray) for i in xrange(l-1, 0, -1): self.snake.posArray[i] = self.snake.posArray[i-1] xx = self.snake.posArray[0][0] yy = self.snake.posArray[0][1] self.snake.posArray[0] = (xx self.xch, yy self.ych) #def isDead(): def produceFood(self): if self.food.isExist == 0: #random.seed() xx = random.randint(0, 49) yy = random.randint(0, 29) while (xx, yy) in self.snake.posArray: xx = random.randint(0, 49) yy = random.randint(0, 29) self.food.pos = (xx, yy) self.food.isExist = 1 def drawFood(self, qp): self.drawBlackSquare(qp, self.food.pos[0], self.food.pos[1]) def eatFood(self): l = len(self.snake.posArray) if self.snake.posArray[0] == self.food.pos: self.snake.posArray.append(self.snake.posArray[l-1]) self.food.isExist = 0 self.score = self.score self.lvl * 100 def drawCoverText(self, event, qp, text, color): qp.setPen(color) qp.setFont(QFont('Decorative', 30)) qp.drawText(event.rect(), Qt.AlignCenter, text) def drawStatusText(self, qp, text, xx, yy): qp.setPen(QColor(0,0,0)) qp.setFont(QFont('Decorative', 15)) qp.drawText(xx, yy, text) def drawStatus(self, qp): text1 = 'SCORE: ' str(self.score) self.drawStatusText(qp, text1, 10, 315) text2 = 'LVL: ' str(self.lvl) self.drawStatusText(qp, text2, 300, 315) def pause(self, event, qp): color = QColor(0, 0, 0) text = 'Pause' self.drawCoverText(event, qp, text, color) def overGame(self, event, qp): color = QColor(0, 0, 0) text = 'Game Over' self.drawCoverText(event, qp, text, color) self.drawSnake(qp) self.drawBorder(qp) text1 = 'SCORE: ' str(self.score) self.drawStatusText(qp, text1, 185, 220) self.drawFood(qp) self.isStart = 2 def initGame(self): self.xch, self.ych = 1,0 self.tag = 'Right' self.isStart = 0 self.snake = Snake() self.food = Food() self.score = 0 self.lvl = 1 self.timer.start(240) def readyGame(self, event, qp): self.drawSnake(qp) self.drawBorder(qp) text = 'Press Space To Play' color = QColor(0, 0, 0) self.drawCoverText(event, qp, text, color) def checkLiveOrDead(self): xx = self.snake.posArray[0][0] self.xch yy = self.snake.posArray[0][1] self.ych if xx < 0 or yy < 0 or xx >49 or yy >29 or (xx, yy) in self.snake.posArray: self.snake.isDead = 1 def checkLvl(self): if self.score >= self.lvl * self.lvl *1000: time = 240 - self.lvl * 30 self.lvl = self.lvl 1 if time < 0: time = 1 self.timer.start(time) def drawBorder(self, qp): qp.setPen(QColor(0,0,0)) qp.drawRect(0,0,500,300) def proceedGame(self, event, qp): self.checkLiveOrDead() self.checkLvl() if self.snake.isDead: self.overGame(event, qp) else: self.drawBorder(qp) self.moveSnake() self.eatFood() self.drawSnake(qp) self.produceFood() self.drawFood(qp) self.drawStatus(qp) def fin(): app = QtGui.QApplication(sys.argv) ex = main() sys.exit(app.exec_()) if __name__ == '__main__': fin()
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论