计算机技术杂类一起玩pythonpyQt5

pyqt5项目(计算器)

2018-02-18  本文已影响100人  肥宅_Sean

在这个项目中,在之前的文章中所讲到的东西,在这都已经得到了演示

  1. 设置图标
  2. 改标题
  3. move布局
  4. connect()信号与槽的链接
  5. 字体更改
    具体文章,可以点击我的文章中的关于这些的基础讲解里面有~

计算器效果,只要数值发生改变就会及时进行计算给出结果~

运行效果大概是这样~

下面就是代码:(在各位的电脑上可能不能直接运行,因为需要在代码所在文件夹下放有 特定名字的图标作为图标~)

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QToolTip, QLineEdit, QMessageBox, QDesktopWidget, QTextEdit
from PyQt5.QtGui import QIcon, QFont
from PyQt5.QtCore import QCoreApplication


class Calculater(QWidget):
    def __init__(self):
        super().__init__()
        self.setUI()

    def setUI(self):
        QToolTip.setFont(QFont('SansSerif', 10))
        Font = QFont('SansSerif', 18)
        self.resize(500, 400)
        self.move(100, 100)
        self.setWindowTitle("Calculater")
        self.setWindowIcon(QIcon('./1.jpg'))
        self.center()
        self.line = QLineEdit(self)
        self.line.resize(480, 80)
        self.line.move(10, 10)
        self.line.setFont(Font)

        self.Text = QTextEdit(self)
        self.Text.resize(480, 280)
        self.Text.move(10, 110)
        self.Text.setFont(Font)
        self.Text.setText(str(0))

        self.line.textChanged.connect(self.calculate)
        self.show()

    def calculate(self):
        s = self.line.text()
        if len(s) == 0:
            self.Text.setText(str(0))
            return False
        s = s.replace('^', '**')  # 使得能够接受^这样的用法
        try:
            ans = eval(s)
        except:
            return False
        else:
            self.Text.setText(str(ans))

    def center(self):
        qr = self.frameGeometry()
        cp = QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())


if __name__ == '__main__':
    app = QApplication(sys.argv)

    ex = Calculater()

    sys.exit(app.exec_())

上一篇下一篇

猜你喜欢

热点阅读