все.Как обновить глобальную целочисленную переменную локально?
Прежде всего, я не уверен, правильно ли был поднят вопрос, но я старался изо всех сил. Кроме того, обратите внимание, что я только начал изучать Python, потому что хотел создать простую компьютерную программу, которую я хотел использовать. Я хотел задать вопрос здесь, потому что я столкнулся с проблемой, которая может показаться легкой для профессионалов, но я не могу понять решение.
Вот код, который я написал ...
from tkinter import *
from tkinter import ttk
from PIL import Image, ImageTk
class Application(Frame):
def __init__(self, master):
ttk.Frame.__init__(self, master)
self.grid()
self.create_widgets()
self.FIDSIA_Amount()
def create_widgets(self):
self.label1 = Label(self, text='Type').grid(row=1, column=12, sticky=E)
self.Type = ttk.Combobox(self, width=7, textvariable=varSymbol, state="readonly")
self.Type['values'] = ('--------', 'A','B','C')
self.Type.grid(row=1, column=13)
self.Type.bind("<<ComboboxSelected>>", self.adjustmentFIDSIA_Planet1)
def adjustmentFIDSIA_Planet1(self, event):
content = self.Type.get()
if content == 'A':
varP1f = 0
varP1ind = 12
varP1d = 1
varP1s = 0
varP1inf = 0
varP1app = -15
elif content == 'B':
varP1f = 0
varP1ind = 12
varP1d = 1
varP1s = 0
varP1inf = 0
varP1app = -10
elif content == 'C':
varP1f = 0
varP1ind = 12
varP1d = 1
varP1s = 0
varP1inf = 0
varP1app = -5
elif content == '--------':
varP1f = 0
varP1ind = 0
varP1d = 0
varP1s = 0
varP1inf = 0
varP1app = 0
def FIDSIA_Amount(self):
amountf = Label(self, textvariable=varP1F)
amountf.grid(row=1, column=1)
amountind = Label(self, textvariable=varP1Ind)
amountind.grid(row=1, column=3)
amountd = Label(self, textvariable=varP1D)
amountd.grid(row=1, column=5)
amounts = Label(self, textvariable=varP1S)
amounts.grid(row=1, column=7)
amountinf = Label(self, textvariable=varP1Inf)
amountinf.grid(row=1, column=9)
amountapp = Label(self, textvariable=varP1App)
amountapp.grid(row=1, column=11)
root = Tk()
varP1f = IntVar(root)
varP1ind = IntVar(root)
varP1d = IntVar(root)
varP1s = IntVar(root)
varP1inf = IntVar(root)
varP1app = IntVar(root)
varSymbol = StringVar(root, value='--------')
varP1F = StringVar(root)
varP1F.set(str(0+varP1f.get()))
varP1Ind = StringVar(root)
varP1Ind.set(str(0+varP1ind.get()))
varP1D = StringVar(root)
varP1D.set(str(0+varP1d.get()))
varP1S = StringVar(root)
varP1S.set(str(0+varP1s.get()))
varP1Inf = StringVar(root)
varP1Inf.set(str(0+varP1inf.get()))
varP1App = StringVar(root)
varP1App.set(str(0+varP1app.get()))
app = Application(root)
root.mainloop()
Так, в принципе, я создал окно с 6 цифр в нем и рядом с ним, есть выпадающий выпадающий список меню 4 пункта (- ------, A, B, C). То, что я хочу сделать, - это когда -------- выбран в combobox, я хочу, чтобы 6 цифр были равными 0. Однако, если я выберу A в combobox, я хочу, чтобы 6 цифр были обновлены в окне, добавив каждая из 6 переменных на 0. Поэтому, когда я выбираю A, он будет выглядеть как «0 12 1 0 0 -15» вместо «0 0 0 0 0 0». С текущим кодом я не могу это сделать. PyCharm показывает 6 переменных: varP1f и т. Д. ... ошибка -> значение локальной переменной не используется.
Как исправить эту проблему? не
всегда ставится под вопрос полное сообщение об ошибке - есть другая полезная информация. – furas
Вы имели в виду 'self.varP1f'? – Natecat
@ juanpa.arrivillaga - Этот дубликат часто применим, но в этом случае это не так, поскольку это объекты IntVar, которые должны быть мутированы, а не целые числа, которые нужно переназначить. – TigerhawkT3