に更新することはできませんここで私は[ピクルス]からロードされたデータについて困惑している私は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]] "
であり、ラベル[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