如何用python编写计算器

如何用python编写计算器,第1张

我想你的需求应该弯尺是一个图形界面的程序,而不是简橘伍单的在命令行上输入。

那么,要做的第一件事就是选择一个图形界面套件。可以使用原生的TK,也可以用跨平台性能很好的wxPython,或者是整体圆闹或结构很像MFC的PyWin32。至于pyGTK,pyQT,都是可选的,但是相对来说文档比较少,学习不便。

选定图形库之后,就可以看文档范例了。计算器总体是比较简单的。我记得WxPython的demo里直接就有一个简单计算器,您可以直接取来用。

import sys

from math import *

from PyQt5.QtCore import *

from PyQt5.QtWidgets import QApplication, QDialog, QLineEdit, QTextBrowser, QVBoxLayout

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.lineedit.returnPressed.connect(self.updateUi)

        self.setWindowTitle("Calculate")

    def updateUi(self):

        try:

            text = self.lineedit.text()

            self.browser.append("%s = <b>%s</b>" % (text, eval(text)))

        except:

            self.browser.append("<font color=red>%s is invalid!</font>" % text)

        self.lineedit.setText('')

if __name__=="__main__":

    app = QApplication(sys.argv)

    form = Form()

    form.show()

    app.exec_()

运行这个程序就能得到一个小的计算器,前提你已经安装好了pyqt

python中的GUI可以利用pyqt进行编写

#!/usr/bin/env python

#############################################################################

##

## Copyright (C) 2010 Riverbank Computing Limited.

## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).

## All rights reserved.

##

## This file is part of the examples of PyQt.

##

## $QT_BEGIN_LICENSE:BSD$

## You may use this file under the terms of the BSD license as follows:

##

## "Redistribution and use in source and binary forms, with or without

## modification, are permitted provided that the following conditions are

## met:

## * Redistributions of source code must retain the above copyright

## notice, this list of conditions and the following disclaimer.

## * Redistributions in binary form must reproduce the above copyright

## notice, this list of conditions and the following disclaimer in

## the documentation and/or other materials provided with the

## distribution.

## * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor

## the names of its contributors may be used to endorse or promote

## products derived from this software without specific prior written

## permission.

##

## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS

## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT

## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR

## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT

## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,

## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT

## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICESLOSS OF USE,

## DATA, OR PROFITSOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY

## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT

## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE

## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."

## $QT_END_LICENSE$

##

#############################################################################

from PyQt4 import QtCore, QtGui

from ui_calculatorform import Ui_CalculatorForm

class CalculatorForm(QtGui.QWidget):

def __init__(self, parent=None):

super(CalculatorForm, self).__init__(parent)

self.ui = Ui_CalculatorForm()

self.ui.setupUi(self)

@QtCore.pyqtSlot(int)

def on_inputSpinBox1_valueChanged(self, value):

self.ui.outputWidget.setText(str(value + self.ui.inputSpinBox2.value()))

@QtCore.pyqtSlot(int)

def on_inputSpinBox2_valueChanged(self, value):

self.ui.outputWidget.setText(str(value + self.ui.inputSpinBox1.value()))

if __name__ == '__main__':

import sys

app = QtGui.QApplication(sys.argv)

calculator = CalculatorForm()

calculator.show()

sys.exit(app.exec_())


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12562189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存