Skip to content

用python 30行设计一个属于自己的计算器

标签:python 设计 计算器

今天来看一下如何来使用python设计一个属于自己的计算器,哈哈,python的gui还是蛮强的哦~~下面开始吧 先上截图哈 先载入QT4所用的模块以及计算所用的math模块。 1 2 3 4 5 from __future__import division    #精确除法 import sys from mathimport * from PyQt4.QtCoreimport * from PyQt4.QtGuiimport * 根据截图,这个应用程序用了两个widgets ,一个是QTextBrowser这是一个只读的文本或者HTML查看器, 另一个是QLineEdit 是一个单行的可写的文本查看器。 根据QT的规则,所有的字符都为Uni编码。 1 2 3 4 5 6 7 8 9 10 11 12 13 def __init__(self, parent=None):         super(Form,self).__init__(parent)         self.browser= QTextBrowser()         self.lineedit= QLineEdit("Type an expression and press Enter")         self.lineedit.selectAll()         layout= QVBoxLayout()         layout.addWidget(self.browser)         layout.addWidget(self.lineedit)         self.setLayout(layout)         self.lineedit.setFocus()         self.connect(self.lineedit, SIGNAL("returnPressed()"),                      self.updateUi)         self.setWindowTitle("Calculate coding by Kaysin") 这样就完成了初始画面的定义。 QVBoxLayout()  就是一个可以放置widget的页面。 而下面的addWidget方法,就是将所创建的widget添加进新的页面。 下面有触发信号,按下回车。 载入函数 upadteUi 1 2 3 4 5 6 7 def updateUi(self):         try:             text= unicode(self.lineedit.text())             self.browser.append("%s = %s" % (text,eval(text)))         except:             self.browser.append(                     "%s is invalid!" % text) 这个很好理解,就是判断输入是否合法,出现异常则输出不合法。 我们看下源程序。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 from __future__import division import sys from mathimport * from PyQt4.QtCoreimport * from PyQt4.QtGuiimport *         class Form(QDialog):         def __init__(self, parent=None):         super(Form,self).__init__(parent)         self.browser= QTextBrowser()         self.lineedit= QLineEdit("Type an expression and press Enter")         self.lineedit.selectAll()         layout= QVBoxLayout()         layout.addWidget(self.browser)         layout.addWidget(self.lineedit)         self.setLayout(layout)         self.lineedit.setFocus()         self.connect(self.lineedit, SIGNAL("returnPressed()"),                      self.updateUi)         self.setWindowTitle("Calculate coding by Kaysin")         def updateUi(self):         try:             text= unicode(self.lineedit.text())             self.browser.append("%s = %s" % (text,eval(text)))         except:             self.browser.append(                     "%s is invalid!" % text)         app= QApplication(sys.argv) form= Form() form.show() app.exec_()

部分信息收集于网络,若有侵权请联系我们.