本文主要是介绍pyqt5制作的小巧玲珑的计算器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
pyqt5制作的小巧玲珑的计算器
废话不多说,本程序为练手作,如果有哪里有不足的,还请各位大佬指出!实物图和代码如下:
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon, QFont
from PyQt5.QtCore import Qt
import PyQt5.QtCore as QtCore
import sysclass Btn(QPushButton):def __init__(self, name, line):super().__init__(name)self.name = nameself.line = linedef normal_action(self):string = self.line.text()if self.name == '^':self.line.setText(string + '**')else:self.line.setText(string + self.name)def back_action(self):string = self.line.text()[:-1]self.line.setText(string)def del_action(self):self.line.setText('')def get_action(self):string = self.line.text()try:self.line.setText(string + '=' + str(eval(string)))except BaseException:self.line.setText('Error!')class Calc(QWidget):def __init__(self):super().__init__()self.result_line = QLineEdit(self)self.initUI()def initUI(self):grid = QGridLayout()self.setLayout(grid)self.result_line.setFont(QFont("Timers", 13, QFont.Bold))self.result_line.setClearButtonEnabled(True)self.result_line.setPlaceholderText('input expression...')grid.addWidget(self.result_line, 0, 0, 2, 4)names = ['^', '%', 'C', '←','7', '8', '9', '/','4', '5', '6', '*','3', '2', '1', '-','0', '.', '=', '+']positions = [(i, j) for i in range(2, 7) for j in range(4)]for position, name in zip(positions, names):if name != '':btn = Btn(name, self.result_line)if name == 'C':btn.clicked.connect(btn.del_action)elif name == '←':btn.clicked.connect(btn.back_action)elif name == '=':btn.clicked.connect(btn.get_action)else:btn.clicked.connect(btn.normal_action)grid.addWidget(btn, *position)self.resize(250, 200)self.center()self.setFixedSize(self.width(), self.height())self.setWindowTitle('qt_calc')self.setWindowIcon(QIcon('lvyou-active.png'))self.show()def center(self):qr = self.frameGeometry()cp = QDesktopWidget().availableGeometry().center()qr.moveCenter(cp)self.move(qr.topLeft())def keyPressEvent(self, QKeyEvent):if QKeyEvent.key() == Qt.Key_Enter or QKeyEvent.key() == Qt.Key_Return:string = self.result_line.text()try:self.result_line.setText(string + '=' + str(eval(string)))except BaseException:self.result_line.setText('Error!')elif QKeyEvent.key() == Qt.Key_Backspace:if QApplication.keyboardModifiers() == Qt.ControlModifier:self.result_line.setText('')if __name__ == '__main__':app = QApplication(sys.argv)calc = Calc()sys.exit(app.exec_())
2020 - 5 - 20 — — — XXX
这篇关于pyqt5制作的小巧玲珑的计算器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!