【发布时间】:2020-10-21 21:11:41
【问题描述】:
我正在尝试使用 pyqt5 制作菜单 GUI,菜单包括饮料和其他东西。 在每个菜单项前面都有一个复选框,当它被选中时,它的价格将被添加到账单中。
self.latte_box = QtWidgets.QCheckBox(self.horizontalLayoutWidget) #latte_box is the name of the checkbox
self.latte_box.setText("")
self.latte_box.setObjectName("latte_box")
self.horizontalLayout.addWidget(self.latte_box)
self.latte_box.stateChanged.connect(self.order)
self.cookie_box = QtWidgets.QCheckBox(self.horizontalLayoutWidget_3)
self.cookie_box.setText("")
self.cookie_box.setObjectName("cookie_box")
self.horizontalLayout_3.addWidget(self.cookie_box)
self.cookie_box.stateChanged.connect(self.order)
bill = 0 #the bill variable
def order(self):
if self.latte_box.isChecked():
bill += 2.85
else:
bill -= 2.85
if self.cookie_box.isChecked():
bill += 1.50
else:
bill -= 1.50
latte_box 和 cookie_box 是列表中 2 件商品的复选框,价格分别为 2.85 美元和 1.50 美元。 因此,当用户选中该框时,该项目的价格将被添加到账单中,但如果出现错误,用户只需取消选中该框,该项目的价格将从账单中删除。
这里的问题是,所有的商品都是通过方法(order)运行的,是否勾选则添加价格,不勾选则去掉价格。
如何只有选中或未选中的框通过该方法,而未触摸的框保持静止..?
【问题讨论】: