在 CreateJson 函式的第 36 行附近,我嘗試使用我創建的復選框的狀態來創建 JSON 檔案(我知道這不是創建 JSON 檔案的最佳方式)。無論如何,我嘗試了許多不同的方法來讀取復選框的值。我已經讀過在 Tkinter 物件上使用 .get() 可以獲取值,但是我已經嘗試過獨立并在我的串列中,它似乎不起作用。列印串列會顯示物件及其位置,如下所示。<tkinter.IntVar 物件位于 0x000001CD7FB41150>
from itertools import count
from tkinter import *
from tkinter import filedialog
import os
import json
from traceback import print_tb
def openFile():
filepath = filedialog.askdirectory()
f = open("Modstext.json","w")
f.write("\"mods\": [")
jsonfiles = []
for dirpath, subdirs, files in os.walk(filepath):
for x in files:
if x.endswith("ServerData.json"):
jsonfiles.append(os.path.join(dirpath, x))
counter = 0
r = [len(jsonfiles)]
for item in jsonfiles:
with open(item,encoding='utf-8-sig') as file:
data = json.load(file)
var = IntVar()
Checkbutton(window, text = data["name"],variable = var,onvalue=1,offvalue=0).pack()
r.append(var)
counter = 1
def CreateJson():
counter = 0
print(r)
for x in jsonfiles:
if r[counter] == 1:
with open(x,encoding='utf-8-sig') as file:
data = json.load(file)
f.write("\n {")
f.write("\n \"modsId\":" "\"" data["id"] "\",")
f.write("\n \"name\":" "\"" data["name"] "\",")
f.write("\n \"version\":" "\"" data["revision"]["version"] "\"")
f.write("\n },")
counter = counter
else:
counter = counter
pass
f = open("Modstext.json", "a")
f.write("\n ]")
f.close
button1 = Button(text="Create",command=CreateJson)
button1.pack()
f.close()
window = Tk()
window.geometry("300x1200")
button = Button(text="Open",command=openFile)
button.pack()
window.mainloop() ```
uj5u.com熱心網友回復:
不確定我們是否完全理解您的問題。這是你想要的?
value = Checkbutton.get()
print(value)
回傳值將是 yes 或 no,或者 1 或 0。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/482878.html
