Я создаю приложение, которое требует ввода некоторых значений с экранной клавиатуры. У меня уже есть кнопки с номерами, вызывающими функцию, которая должна обновить номер, который я хотел бы использовать. Но каждый раз, когда нажимается кнопка, должна быть заполнена другая десятичная позиция. Поэтому мне нужны две глобальные переменные: одна для текущего числа и другая для текущей десятичной позиции. Но я не знаю, куда поместить определения этих двух переменных, чтобы они рассматривались как глобальные и могли использоваться внутри любой функции. Мой код выглядит следующим образом:
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