PyQt5实例 — 温度转换

 

使用PyQt 来建立以摄氏度和华氏度温度转换程序的一个图形化版本

目录

 

前言:

开发环境:

一、界面准备

二、代码实现

需要实现功能:

①、温度转换代码:

②、GUI操作实现方式:

ⅰ、添加PyQt 程序所需代码

ⅱ、添加转换温度代码:

ⅲ、GUI 上按按键来完成转换

ⅳ、GUI 上使用菜单来完成转换

a、先在ui界面创建菜单

b、绑定菜单事件

ⅴ、GUI 上使用快捷键来完成转换

a、在UI中添加快捷键

b、py不做处理

三、代码


前言:

       使用PyQt 来建立以摄氏度和华氏度温度转换程序的一个图形化版本,来巩固PyQt的应用。

开发环境:

  • GUI工具:   PyQt5
  • python:Python 3.9.2

 

一、界面准备

  • 输入温度的位置(摄氏度和华氏度)
  • 完成温度转换的按钮
  • 向用户显示有关信息的标签。

二、代码实现

需要实现功能:

①、温度转换代码

摄氏温度(C)和华氏温度(F)之间的换算关系为: F = 9 / 5C + 32

  •  摄氏度转换为华氏度代码实现

  •  华氏度转换为摄氏度代码实现

②、GUI操作实现方式:

  • 温度转换 GUI 上按钮,用来完成转换

  • 温度转换 GUI 上使用菜单,用来完成转换

  • 温度转换 GUI 上使用快捷键,用来完成转换

ⅰ、添加PyQt 程序所需代码

import sys
from PyQt5 import QtCore,QtGui, QtWidgets,uic

form_class = uic.loadUiType("temp.ui")[0]

class MyWindowClass(QtWidgets.QMainWindow, form_class):
    def __init__(self, parent =None):
        QtWidgets.QMainWindow.__init__(self, parent)
        self.setupUi(self)

app = QtWidgets.QApplication(sys.argv)
myWindow = MyWindowClass()
myWindow.show()
app.exec_()

ⅱ、添加转换温度代码:

import sys
from PyQt5 import QtCore,QtGui, QtWidgets,uic

form_class = uic.loadUiType("temp.ui")[0]

class MyWindowClass(QtWidgets.QMainWindow, form_class):
    def __init__(self, parent =None):
        QtWidgets.QMainWindow.__init__(self, parent)
        self.setupUi(self)

    def btn_CtoF_clicked(self):
       cel = float(self.editCel.text())
       fahr = cel * 9.0 / 5 + 32
       self.spinFahr.setValue(int(fahr + 0.5))
       print('C TO F')
       print(' cel = ',  cel ,'fathr', fahr)
       
    def btn_FtoC_clicked(self):
       fahr = self.spinFahr.value()
       cel = (fahr - 32) * 5 / 9.0
       cel_text = '%.2f' % cel
       self.editCel.setText(str(cel_text))
       print('F TO C')
       print(' cel = ',  cel ,'fathr', fahr)

app = QtWidgets.QApplication(sys.argv)
myWindow = MyWindowClass()
myWindow.show()
app.exec_()

ⅲ、GUI 上按按键来完成转换

       绑定按键的事件处理器:
        self.btnCtoF.clicked.connect(self.btn_CtoF_clicked)
        self.btnFtoC.clicked.connect(self.btn_FtoC_clicked)

ⅳ、GUI 上使用菜单来完成转换

a、先在ui界面创建菜单

点击写有 “在这里输入” 的区域,输入 File,然后按回车(Enter)。可以看到 File 菜单出现了,同时在其旁边和下面还有可以输入更多菜单的区域

 

相应界面代码部分

b、绑定菜单事件

self.actionC_to_F.triggered.connect(self.btn_CtoF_clicked)  //C转F
self.actionF_to_C.triggered.connect(self.btn_FtoC_clicked)  //F转C
self.actionEXIT.triggered.connect(self.menuExit_selected)   //退出


    def btn_CtoF_clicked(self):
       cel = float(self.editCel.text())
       fahr = cel * 9.0 / 5 + 32
       self.spinFahr.setValue(int(fahr + 0.5))
       print('C TO F')
       print(' cel = ',  cel ,'fathr', fahr)
       
    def btn_FtoC_clicked(self):
       fahr = self.spinFahr.value()
       cel = (fahr - 32) * 5 / 9.0
       cel_text = '%.2f' % cel
       self.editCel.setText(str(cel_text))
       print('F TO C')
       print(' cel = ',  cel ,'fathr', fahr)

    def menuExit_selected(self):
        self.close()

ⅴ、GUI 上使用快捷键来完成转换

a、在UI中添加快捷键

可以使用键盘来选中菜单项,当按下 Alt 键时,可看到各个菜单项中有个字母变成高亮显示,通常会有一条下划线。划线的字母可以用来激活菜单的键。

比如:要进入 File 菜单,就按 Alt-F。先 按 住 Alt 键, 再 按 F 键, 即 可 看 到File 菜单中的各项,同时也可以看到每个菜单项的热键是什么。如图:

如:要退出 alt + F+E

 

添加快捷键:让其成为热键的字母前加上 & 字符即可

               

b、py不做处理

三、代码

import sys
from PyQt5 import QtCore,QtGui, QtWidgets,uic

form_class = uic.loadUiType("temp.ui")[0]

class MyWindowClass(QtWidgets.QMainWindow, form_class):
    def __init__(self, parent =None):
        QtWidgets.QMainWindow.__init__(self, parent)
        self.setupUi(self)
        self.btnCtoF.clicked.connect(self.btn_CtoF_clicked)
        self.btnFtoC.clicked.connect(self.btn_FtoC_clicked)
        self.actionC_to_F.triggered.connect(self.btn_CtoF_clicked)
        self.actionF_to_C.triggered.connect(self.btn_FtoC_clicked)
        self.actionEXIT.triggered.connect(self.menuExit_selected)

    def btn_CtoF_clicked(self):
       cel = float(self.editCel.text())
       fahr = cel * 9.0 / 5 + 32
       self.spinFahr.setValue(int(fahr + 0.5))
       print('C TO F')
       print(' cel = ',  cel ,'fathr', fahr)
       
    def btn_FtoC_clicked(self):
       fahr = self.spinFahr.value()
       cel = (fahr - 32) * 5 / 9.0
       cel_text = '%.2f' % cel
       self.editCel.setText(str(cel_text))
       print('F TO C')
       print(' cel = ',  cel ,'fathr', fahr)

    def menuExit_selected(self):
        self.close()


app = QtWidgets.QApplication(sys.argv)
myWindow = MyWindowClass()
myWindow.show()
app.exec_()

视频链接:https://www.bilibili.com/video/BV1Tq4y177MX?p=1&share_medium=iphone&share_plat=ios&share_source=QQ&share_tag=s_i&timestamp=1623896924&unique_k=Au8Xf0

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值