📅  最后修改于: 2023-12-03 15:06:49.964000             🧑  作者: Mango
本文介绍如何使用 PyQt5 创建一个黄金比例计算器。黄金比例是一种特殊的比例关系,被广泛应用于设计、艺术和建筑等领域中。
首先,我们来看一下最终程序的界面。界面如下所示:
程序界面中包含了两个文本框和一个按钮,用户可以在第一个文本框中输入数值,然后单击按钮计算黄金比例,计算结果将会显示在第二个文本框中。
接下来,我们来实现这个程序。首先,我们需要导入 PyQt5 库并创建一个主窗口:
from PyQt5.QtWidgets import QApplication, QMainWindow
app = QApplication([])
window = QMainWindow()
然后,我们可以设置主窗口的标题和尺寸:
window.setWindowTitle('黄金比例计算器')
window.setGeometry(100, 100, 400, 150)
接下来,我们需要添加两个文本框和一个按钮到主窗口中:
from PyQt5.QtWidgets import QLineEdit, QPushButton
input_box = QLineEdit(window)
input_box.setGeometry(50, 50, 150, 30)
output_box = QLineEdit(window)
output_box.setGeometry(200, 50, 150, 30)
output_box.setReadOnly(True)
calculate_button = QPushButton('计算', window)
calculate_button.setGeometry(50, 100, 300, 30)
我们将第一个文本框和按钮放在同一行,第二个文本框放在下一行。
接下来,我们需要实现点击按钮时的计算逻辑:
def calculate():
try:
value = float(input_box.text())
golden_ratio = value * 0.61803398875
output_box.setText(str(golden_ratio))
except ValueError:
output_box.setText('请输入数字')
calculate_button.clicked.connect(calculate)
这里我们使用 try
/except
块来捕获用户输入的值中是否包含非数字字符的情况,并在第二个文本框中显示相应的提示信息。如果用户输入的是数字,则计算黄金比例并将结果显示在第二个文本框中。
最后,我们需要调用 show()
方法以显示主窗口:
window.show()
app.exec_()
完整代码如下:
from PyQt5.QtWidgets import QApplication, QMainWindow, QLineEdit, QPushButton
app = QApplication([])
window = QMainWindow()
window.setWindowTitle('黄金比例计算器')
window.setGeometry(100, 100, 400, 150)
input_box = QLineEdit(window)
input_box.setGeometry(50, 50, 150, 30)
output_box = QLineEdit(window)
output_box.setGeometry(200, 50, 150, 30)
output_box.setReadOnly(True)
calculate_button = QPushButton('计算', window)
calculate_button.setGeometry(50, 100, 300, 30)
def calculate():
try:
value = float(input_box.text())
golden_ratio = value * 0.61803398875
output_box.setText(str(golden_ratio))
except ValueError:
output_box.setText('请输入数字')
calculate_button.clicked.connect(calculate)
window.show()
app.exec_()
使用 PyQt5 创建黄金比例计算器的过程中,我们学习了如何使用 PyQt5 库创建一个简单的 GUI 应用程序,在程序中添加文本框、按钮等控件。同时,我们还学习了如何使用信号与槽机制实现用户交互和对事件的响应。通过这个例子,我们可以深入了解 PyQt5 库,以及如何使用它来创建更加复杂和功能强大的 GUI 应用程序。