pyqt5制作的小巧玲珑的计算器

2024-01-24 07:08

本文主要是介绍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制作的小巧玲珑的计算器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/638884

相关文章

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Python+PyQt5实现多屏幕协同播放功能

《Python+PyQt5实现多屏幕协同播放功能》在现代会议展示、数字广告、展览展示等场景中,多屏幕协同播放已成为刚需,下面我们就来看看如何利用Python和PyQt5开发一套功能强大的跨屏播控系统吧... 目录一、项目概述:突破传统播放限制二、核心技术解析2.1 多屏管理机制2.2 播放引擎设计2.3 专

用Java打造简易计算器的实现步骤

《用Java打造简易计算器的实现步骤》:本文主要介绍如何设计和实现一个简单的Java命令行计算器程序,该程序能够执行基本的数学运算(加、减、乘、除),文中通过代码介绍的非常详细,需要的朋友可以参考... 目录目标:一、项目概述与功能规划二、代码实现步骤三、测试与优化四、总结与收获总结目标:简单计算器,设计

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

【Python篇】PyQt5 超详细教程——由入门到精通(终篇)

文章目录 PyQt5超详细教程前言第9部分:菜单栏、工具栏与状态栏9.1 什么是菜单栏、工具栏和状态栏9.2 创建一个简单的菜单栏示例 1:创建带有菜单栏的应用程序代码详解: 9.3 创建工具栏示例 2:创建带有工具栏的应用程序代码详解: 9.4 创建状态栏示例 3:创建带有状态栏的应用程序代码详解: 9.5 菜单栏、工具栏与状态栏的结合示例 4:完整的应用程序界面代码详解: 9.6 总结

OpenStack离线Train版安装系列—0制作yum源

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版

OpenStack镜像制作系列5—Linux镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

OpenStack镜像制作系列4—Windows Server2019镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录  CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系