【发布时间】:2020-02-23 16:13:06
【问题描述】:
我正在创建应用程序,这需要从屏幕键盘输入一些值。我已经有带有数字的按钮调用该函数,它应该更新我想使用的数字。但每次按下按钮时,都应填写不同的小数位。所以我需要两个全局变量:一个用于当前数字,另一个用于当前小数位。但是我不知道这两个变量的定义放在哪里,所以它们被认为是全局变量,可以在任何函数内部使用。我的代码如下所示:
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QFileDialog, QMessageBox
from PyQt5.QtCore import QTimer
from mainwindow import Ui_MainWindow
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, *args, obj=None, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
self.setupUi(self)
self.kpadBtn0.clicked.connect(lambda:self.setValue(0))
self.kpadBtn1.clicked.connect(lambda:self.setValue(1))
self.kpadBtn2.clicked.connect(lambda:self.setValue(2))
self.kpadBtn3.clicked.connect(lambda:self.setValue(3))
self.kpadBtn4.clicked.connect(lambda:self.setValue(4))
self.kpadBtn5.clicked.connect(lambda:self.setValue(5))
self.kpadBtn6.clicked.connect(lambda:self.setValue(6))
self.kpadBtn7.clicked.connect(lambda:self.setValue(7))
self.kpadBtn8.clicked.connect(lambda:self.setValue(8))
self.kpadBtn9.clicked.connect(lambda:self.setValue(9))
disp_pos=1 #here it does not work
val=0
def setValue(self,num):
val+=num*disp_pos #it should be usable here
disp_pos*=10
self.newPosDisplay.setText(str(val))
app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec()
当我按下按钮时,会显示以下错误:
NameError: name 'val' is not defined
【问题讨论】: