вот часть моего кода из недавней игры я пытаюсь сделатьPython Рассол не может обновить в Tkinter
Я запутался о данных, загруженных из [рассол] не может применяться к метке в [ Tkinter]
это работает, когда я буду сохранения и загрузки данных
from tkinter import *
import pickle
Prvs_controll = [3,3,3,3,3]
Prvs_size = [1,1,1,1,1]
GameData= [Prvs_controll, Prvs_size]
class MainGame(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
global canvas
self.parent.title('PythonEuropaGame')
self.pack(fill=BOTH, expand=1)
tkframe = Frame(self)
canvas = Canvas(self)
canvas.pack(fill = BOTH, expand = 1)
canvas.update()
def save():
global GameData
with open('Save_01.pickle', 'wb') as handle:
pickle.dump(GameData, handle)
print(GameData)
def load():
global canvas
global GameData
with open('Save_01.pickle', 'rb') as handle:
GameData = pickle.load(handle)
Label_size_b.configure(text = Prvs_size[0])
print(GameData)
def change_controll():
global GameData
GameData[0] = [9,9,9,9,9]
def change_size():
global GameData
GameData[1][0] += 150
Label_size_b.configure(text = Prvs_size[0])
root = Tk()
ex = MainGame(root)
root.geometry('900x650')
Label_size_a = Label(root, text = 'Size')
Label_size_b = Label(root, text = '---')
Label_size_a.place(x = 700, y = 195)
Label_size_b.place(x = 750, y = 195)
Button_save = Button(root, text = 'Save', command = save)
Button_load = Button(root, text = 'Load', command = load)
Button_size_add = Button(root, text = 'Upgrade', command = change_size)
Button_save.place(x = 700, y = 500)
Button_load.place(x = 750, y = 500)
Button_size_add.place(x = 800, y = 225)
Сначала я назвал change_size() и сохранить(),
напечатанное «[3, 3, 3 , 3, 3], [151, 1, 1, 1, 1]] "
и ярлык [Label_size_b] показал изменение размера (оно напечатано «151») и оно сохраняется.
Однако, когда я перезапускаю модуль и вызываю load(), он все еще печатает данные выше «[3, 3, 3, 3, 3], [151, 1, 1, 1, 1]]».
Но главная проблема в том, этикетка [Label_size_b] печатается как «1», но не «151» , что означает, что я что-то изменилось, и загрузить его, но этикетка все еще напечатать исходные данные! (См сверху на коде)
Я думаю, что это может быть «глобальная» проблема, но я не могу найти способ ее исправить.
Спасибо, решено – Montague27
@ Montague27: не уверен, что вы заметили мое последнее обновление, но в 'change_size()' есть аналогичная проблема. – mhawke
Да, я знал это. : D – Montague27