如何将PyQt5加法计算结果输出到应用界面而非Pycharm控制台
PyQt5加法结果显示到界面修改方案
你仅需做两处核心修改即可实现需求:一是在界面上新增结果显示控件,二是修改计算逻辑将结果输出到新增控件中,同时可补充输入校验避免程序崩溃。
具体修改步骤
- 第一步:在
setupUi方法中新增结果显示的UI控件,放在原有控件下方合适位置即可 - 第二步:修正
cal槽函数的参数错误,将原本的控制台打印逻辑改为给结果控件赋值,同时补充输入异常处理 - 第三步:在
retranslateUi方法中给新增的结果标签设置显示文本
修改后完整代码
from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Probnei(object): def setupUi(self, Probnei): Probnei.setObjectName("Probnei") Probnei.resize(439, 309) self.centralwidget = QtWidgets.QWidget(Probnei) self.centralwidget.setObjectName("centralwidget") self.layoutWidget = QtWidgets.QWidget(self.centralwidget) self.layoutWidget.setGeometry(QtCore.QRect(90, 140, 214, 22)) self.layoutWidget.setObjectName("layoutWidget") self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.layoutWidget) self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.label_2 = QtWidgets.QLabel(self.layoutWidget) self.label_2.setObjectName("label_2") self.horizontalLayout_2.addWidget(self.label_2) self.Second_n = QtWidgets.QLineEdit(self.layoutWidget) self.Second_n.setObjectName("Second_n") self.horizontalLayout_2.addWidget(self.Second_n) self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(360, 210, 75, 23)) self.pushButton.setObjectName("pushButton") self.widget = QtWidgets.QWidget(self.centralwidget) self.widget.setGeometry(QtCore.QRect(90, 60, 214, 22)) self.widget.setObjectName("widget") self.horizontalLayout = QtWidgets.QHBoxLayout(self.widget) self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.horizontalLayout.setObjectName("horizontalLayout") self.label = QtWidgets.QLabel(self.widget) self.label.setObjectName("label") self.horizontalLayout.addWidget(self.label) self.First_n = QtWidgets.QLineEdit(self.widget) self.First_n.setObjectName("First_n") self.horizontalLayout.addWidget(self.First_n) # 新增:结果显示相关控件 self.result_label = QtWidgets.QLabel(self.centralwidget) self.result_label.setGeometry(QtCore.QRect(90, 210, 80, 22)) self.result_label.setObjectName("result_label") self.result_value = QtWidgets.QLabel(self.centralwidget) self.result_value.setGeometry(QtCore.QRect(170, 210, 120, 22)) self.result_value.setObjectName("result_value") Probnei.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(Probnei) self.menubar.setGeometry(QtCore.QRect(0, 0, 439, 21)) self.menubar.setObjectName("menubar") Probnei.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(Probnei) self.statusbar.setObjectName("statusbar") Probnei.setStatusBar(self.statusbar) self.retranslateUi(Probnei) QtCore.QMetaObject.connectSlotsByName(Probnei) def retranslateUi(self, Probnei): _translate = QtCore.QCoreApplication.translate Probnei.setWindowTitle(_translate("Probnei", "MainWindow")) self.label_2.setText(_translate("Probnei", "第二个数字:")) self.pushButton.setText(_translate("Probnei", "计算")) self.label.setText(_translate("Probnei", "第一个数字:")) # 新增:结果标签文本设置 self.result_label.setText(_translate("Probnei", "计算结果:")) self.pushButton.clicked.connect(self.cal) def cal(self): try: val_1 = self.First_n.text() val_2 = self.Second_n.text() res = int(val_1) + int(val_2) # 将结果设置到界面控件上,替代原print输出 self.result_value.setText(str(res)) except ValueError: # 输入非数字时的错误提示 self.result_value.setText("请输入合法整数")
if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) Probnei = QtWidgets.QMainWindow() ui = Ui_Probnei() ui.setupUi(Probnei) Probnei.show() sys.exit(app.exec_())
补充说明
如果想要结果显示在可复制的输入框中,可将result_value的控件类型从QLabel改为QLineEdit,同时调用setReadOnly(True)方法设置为只读即可。
内容的提问来源于stack exchange,提问作者mainderofem
相关产品推荐
相关产品推荐

