用 Python 实现一个简易计算器(上)

2,329 阅读4分钟

上一篇,讲解了 Python 相关的开发环境如何安装与配置,现在,那开始做一个什么项目练手呢?经过几经思考,决定做一个简易的计算器入手。

做计算器,必然得用到相关的 GUI 库,如 Java 中的 Swing。于是我开始查找关于 Python GUI 相关的资料,结果发现 Python 相关的库还挺多,这把我高兴得不得了,马上就想各个 GUI 库都试一遍。

反复筛选,对比之后,我觉得在 Python 中,GUI 库比较好的有这三个

1、Tkinter ,该模块是 Python 官方标准的 GUI 库,来自官方,性能方面较优,支持 Windows 、Unix、Macintosh 目前主流的操作系统;

2、wxPython,wxPython是一款开源软件,是 Python 语言中一套优秀的 GUI 图形库,能够简单快速上手,目前最新版本是 4.0.7。可运行在Windows,Mac和Linux或其他类似Unix的系统上。

3、PyQt5 ,PyQt5 是一个非常强大的 GUI 图形库,一用就会爱上它的那种。

Qt 是一组跨平台的 C ++库,这些库实现了用于访问现代台式机和移动系统许多方面的高级 API。其中包括定位和定位服务,多媒体,NFC 和蓝牙连接,基于 Chromium 的 Web 浏览器以及传统的 UI 开发。 PyQt5 是用于 Qt v5 的一组全面的 Python 绑定。它被实现为超过35个扩展模块,使 Python 可以在所有受支持的平台(包括 iOS 和Android)上用作 C ++的替代应用程序开发语言。

最后,我选择了比较适合我的 PyQt5 来实现计算器的界面。没有哪个最好,根据自己实际选择适合自己的就最好。

修改 pip 镜像源

由于 pip 默认的镜像源是国外的网络地址,所以下载速度会非常慢,甚至有可能下载不下来。

这就需要改成国内的镜像源了

以 Windows 系统为例,在 “C:\Users**\AppData\Roaming\” 目录下检查否有 “pip”这个文件夹,没有这新建一个 命名为“pip”的文件夹,然后在 “pip”文件夹内新建一个 pip.ini 文件,填写如下内容到文件中

[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
timeout = 6000
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
disable-pip-version-check = true

这样 pip 的镜像源就修改为了国内清华的镜像源了。

当然还有很多镜像源可以选择,比如阿里云等,这里根据喜好自行选择。

安装 PyQt5

以系统管理员权限打开 cmd 命令工具

分别运行 pip install PyQt5 、pip install PyQt5-tools,等待完成安装 PyQt5

在 PyCharm 中配置 PyQt5

在 PyCharm File | Settings | Tools | External Tools 点击 “+”添加,如图,这里我是添加完成的,QT Designer 是 PyQt5 界面编辑工具, PyUIC 是将 PyQt5 编辑好的页面 .ui 文件转化成 .py 文件的工具。

Program: 这里的路径是前面安装的 PyQt5-tools 安装目录下的 designer.exe 应用程序路径,我这里的路径是 “F:\Python\Python38\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe”,供大家参考,其它的参数照填就可以了。

PyUIC 的配置,请参考如图配置。

开始运行 PyQt5-tools designer 工具,这里可能会出现一个如下面图片的问题。

这个问题是在运行 PyQt5-tools designer 工具时可能会出现的问题。

解决办法:

把 “F:\Python\Python38\Lib\site-packages\PyQt5\Qt\plugins” 路径下的 “platforms ”文件夹复制到 “F:\Python\Python38\Lib\site-packages\pyqt5_tools\Qt\bin”目录下,替换原有的 “platforms ”文件夹,这样就可以正常运行 PyQt5-tools designer 工具了。

运行完成后,如图

支持,完全拖拽组件,这样可以节约很多写界面的时间。写到这里,想起了当年学习 Java Swing 时那种手写界面的辛酸劲。

写计算器界面

经过几分钟拖拽界面,完成了计算器界面的拖拽。经过 pyuic 工具将 .ui文件转化成 .py 文件,如图

Calculator.py 主要是计算器界面布局代码,Main.py 主要对相关逻辑处理。

运行的效果图如下

目前,主要把界面和点击事件做好了,后面再实现加减乘除的操作。