实例介绍
【实例简介】实用多功能计算器
【实例截图】
【实例截图】
【核心代码】
# -*- 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小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论