не могу сделать для л oop в ткинтер - python - PullRequest
0 голосов
/ 12 апреля 2020

Я написал код, который вручную вставил в код некоторых из моих игр, и хотел рандомизировать одну из них, чтобы выбрать и играть, в последнее время я думал о способе автоматизации игр, которые требуются вместо меня каждый раз, вручную добавляя 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...