from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout, QMessageBox
class VendingMachineApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('饮料自动售货机')
layout = QVBoxLayout()
# 硬币投入按钮
self.label_coin = QLabel('请投入硬币(5角或1元):')
layout.addWidget(self.label_coin)
self.btn_5jiao = QPushButton('投入5角')
self.btn_5jiao.clicked.connect(lambda: self.insert_coin(0.5))
layout.addWidget(self.btn_5jiao)
self.btn_1yuan = QPushButton('投入1元')
self.btn_1yuan.clicked.connect(lambda: self.insert_coin(1.0))
layout.addWidget(self.btn_1yuan)
# 饮料选择按钮
self.label_drink = QLabel('请选择饮料:')
layout.addWidget(self.label_drink)
self.btn_orange = QPushButton('橙汁')
self.btn_orange.clicked.connect(lambda: self.select_drink('橙汁'))
layout.addWidget(self.btn_orange)
self.btn_beer = QPushButton('啤酒')
self.btn_beer.clicked.connect(lambda: self.select_drink('啤酒'))
layout.addWidget(self.btn_beer)
# 结果显示
self.result_label = QLabel('结果: ')
layout.addWidget(self.result_label)
self.setLayout(layout)
# 初始化变量
self.coin_inserted = 0.0
def insert_coin(self, amount):
self.coin_inserted += amount
self.result_label.setText(f'已投入: {self.coin_inserted}元')
def select_drink(self, drink):
if self.coin_inserted < 0.5:
self.result_label.setText('结果: 请投入至少5角钱')
return
if drink == '橙汁' or drink == '啤酒':
if self.coin_inserted == 0.5:
self.result_label.setText(f'结果: 送出{drink}')
elif self.coin_inserted == 1.0:
self.result_label.setText(f'结果: 送出{drink}, 找零5角')
else:
self.result_label.setText('结果: 请投入5角或1元')
else:
self.result_label.setText('结果: 请选择橙汁或啤酒')
# 重置投入金额
self.coin_inserted = 0.0
if __name__ == '__main__':
app = QApplication([])
window = VendingMachineApp()
window.show()
app.exec_()
浙公网安备 33010602011771号