📜  使用 PyQt5 的狗年计算器(1)

📅  最后修改于: 2023-12-03 15:06:50.008000             🧑  作者: Mango

使用 PyQt5 的狗年计算器

本文介绍如何使用 PyQt5 制作一个简单的狗年计算器,计算人类的年龄相当于狗的年龄。

PyQt5 简介

PyQt5 是一款用于创建 GUI 应用程序的 Python 绑定库。它将 Qt 应用程序框架与 Python 语言集成,使开发者能够轻松创建跨平台的 GUI 应用程序。

GUI 设计

我们使用 PyQt5 中的 Qt Designer 工具设计 GUI 界面。打开 Qt Designer,从左侧选择窗口部件,拖拽到中央布局区域,然后调整大小和位置,设置属性。

界面设计图如下:

界面设计图

代码实现

保存设计好的界面为 ui_mainwindow.ui,然后,我们使用 pyuic5 工具将其转换成 Python 代码。

pyuic5 ui_mainwindow.ui -o mainwindow.py

接下来,我们编写应用程序的主体逻辑,将其保存为 dogyear.py。(代码片段如下)

import sys

from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIntValidator
from PyQt5.QtWidgets import QApplication, QMainWindow

from mainwindow import Ui_MainWindow


class DogYearCalculator(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(DogYearCalculator, self).__init__()
        self.setupUi(self)

        self.age_input.setValidator(QIntValidator())

        self.calc_button.clicked.connect(self.calculate_dog_years)
        self.clear_button.clicked.connect(self.clear_inputs)

    def calculate_dog_years(self):
        human_age = int(self.age_input.text())
        dog_age = human_age * 7
        message = f"A {human_age}-year-old human is {dog_age}-years-old in dog years."
        self.result_label.setText(message)

    def clear_inputs(self):
        self.age_input.clear()
        self.result_label.clear()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = DogYearCalculator()
    window.show()
    sys.exit(app.exec_())

该代码创建了一个 DogYearCalculator 类来处理计算器的逻辑。在初始化方法中,我们将 Ui_MainWindow 类(从 mainwindow.py 引入)的布局和组件赋给 QMainWindow 的实例对象。

我们实现了两个槽方法:

  • calculate_dog_years 计算人类年龄相当于狗年龄
  • clear_inputs 清空输入

通过调用 QIntValidator,我们限制了年龄输入只能是整数。

__main__ 模块中,我们实例化 DogYearCalculator 对象,显示窗口。

运行应用程序

在环境中运行:

python dogyear.py
我们得到了一个简单的狗年计算器,可以计算出人类年龄相当于狗年龄。

应用程序界面截图

总结

我们通过 PyQt5 和 Qt Designer 简单地创建一个狗年计算器。这个计算器有一个用于年龄输入的文本框,一个用于计算的按钮和一个用于显示计算结果的标签。