Я написал код, который вручную вставил в код некоторых из моих игр, и хотел рандомизировать одну из них, чтобы выбрать и играть, в последнее время я думал о способе автоматизации игр, которые требуются вместо меня каждый раз, вручную добавляя game / with os Я попытался go указать каталог c и получить оттуда имя каталогов, но когда я помещаю его список в для l oop, он не может работать, вот код:
games = []
def game(vname, gname):
if vname.get() == 1:
games.append(gname)
else:
games.remove(gname)
count=0
question=tkinter.Label(root, text="what games do you want to play?")
question.pack()
steamgames = next(os.walk('C:\Program Files (x86)\Steam\steamapps\common'))[1]
numberofgames = len(steamgames)
tries = 0
strings = {}
stringsVar = {}
for i in range (0, numberofgames):
this = steamgames[i]
stringsVar[i] = tkinter.IntVar()
strings[i] = tkinter.Checkbutton(root, text=this, variable=stringsVar[i], command=lambda: game(stringsVar[i], this))
strings[i].pack()
tries = tries + 1
Из-за l oop он не может проверить, установлен флажок или нет.
Редактировать: проблема в том, что при запуске tkinter он постоянно проверяет, установлен ли флажок имеет значение 0 или 1, что означает, если он установлен или не отмечен, когда я помещаю поле tkinter в поле для l oop, он возвращает ошибку, что не может проверить, установлен ли флажок или нет, потому что имя переменной только последняя переменная, которая была в l oop, а остальные забыты в l oop.