Доступ к значению списка из Intvar - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь создать пример программы для своего школьного класса.Идея программы в том, что вы можете выбрать игру (базовую версию Steam) из набора радиокнопок.Радиокнопки связаны с IntVar, хранящимся в self.library_game.Когда вы выбираете радиокнопку, я хочу использовать значение, которое радиокнопка присваивает Intvar, чтобы вычеркнуть имя из списка и отобразить название игры в метке.Я хочу сделать это, чтобы я мог использовать IntVar для доступа к другим спискам.В других списках будут отображаться такие вещи, как статус установленных игр.если игра в данный момент не «установлена», вы сможете нажать на кнопку, чтобы обновить статус, чтобы «установить» игру, чтобы ее можно было «запустить».

Проблема, с которой я сталкиваюсь, заключается в следующем: когда я пытаюсь использовать IntVar для доступа к списку libraryGames, я получаю следующую ошибку: «индексы списка должны быть целыми или кусочками, а не методом».Я пытался сохранить значение из IntVar как обычное целое число с «test = self.library_game.get» и использовал «test» для доступа к списку, self.game_selection_label.configure (text = "Вы выбрали:" + str(libraryGames [test]), fg = "# 01fc07"), но это не работает.

Я не самый сильный программист, и я действительно стараюсь изо всех сил этим материалом, поэтому любая помощь будет удивительной.

from tkinter import*
# Variables and Lists
#Classes
libraryGames=["The Witcher 3: Wild Hunt GOTE", "Jurassic World: Evolution", "Red Dead Redemption 2","Mass Effect Trilogy","Subnautica"]
libraryGamesInstall=[True,False, False, False, False]

class SteamGUI:
    def __init__(self, parent):
        #variables
        global libraryGames
        global libraryGamesInstall
        WD=800
        self.header =PhotoImage(file = "header.gif")
        self.library_game = IntVar()
        self.library_game.set = ()

        Title=Label(parent, image = self.header, width=WD, anchor=N)
        Title.grid(row=0, column=0,columnspan=2, sticky=N,padx=2, pady=2)

        #User Library Menu
        frame1=Frame(bg="#000000",)
        frame1.grid(row=1, column=0, sticky = 'w')

        library_label=Label(frame1, text="User Library",bg="#000000",fg="#01fc07",font=("Eras Demi ITC","40"),  anchor=N)
        library_label.grid(row=0, column=0,columnspan=2, sticky=N,padx=2, pady=2)

        radio1 = Radiobutton(frame1, variable = self.library_game, value = 0,text =libraryGames[0],
                             bg="#000000",fg="#ffffff",font=("Calibri","20"), command = self.library_choice)
        radio1.grid(row=1, column=0, columnspan=2, sticky = 'w')
        radio2 = Radiobutton(frame1, variable = self.library_game, value =1,text =libraryGames[1],
                             bg="#000000",fg="#ffffff",font=("Calibri","20"), command = self.library_choice)
        radio2.grid(row=2, column=0, columnspan=2, sticky = 'w')
        radio3 = Radiobutton(frame1, variable = self.library_game, value =2,text =libraryGames[2],
                             bg="#000000",fg="#ffffff",font=("Calibri","20"),command = self.library_choice)
        radio3.grid(row=3, column=0, columnspan=2, sticky = 'w')
        radio4 = Radiobutton(frame1, variable = self.library_game, value =3,text =libraryGames[3],
                             bg="#000000",fg="#ffffff",font=("Calibri","20"),command = self.library_choice)
        radio4.grid(row=4, column=0, columnspan=2, sticky = 'w')
        radio5 = Radiobutton(frame1, variable = self.library_game, value =4,text =libraryGames[4],
                             bg="#000000",fg="#ffffff",font=("Calibri","20"),command = self.library_choice)
        radio5.grid(row=5, column=0, columnspan=2, sticky = 'w')

        self.game_selection_label=Label(frame1, text="No game selected", bg="#000000", fg="#ffffff", width="50",)
        self.game_selection_label.grid(row=6, column=0, columnspan=2, sticky='w')

        self.game_install_status_label=Label(frame1, text="Install Status", bg="#000000", fg="#ffffff", width="50",)
        self.game_install_status_label.grid(row=7, column=0, sticky='w', pady=10)

        self.playLabel =Label(frame1,text="Game Status", bg="#000000", fg="#ffffff", width="50", pady=10)
        self.playLabel.grid(row=9, column=0, sticky='w')

        installButton=Button(frame1, text="Install", width = 20, font=("Eras Demi ITC","10"), pady=10)
        installButton.grid(row=8, column=0, sticky = 'sw',)
        playButton=Button(frame1, text="Play", width = 20,font=("Eras Demi ITC","10"), pady=10)
        playButton.grid(row=8, column=0, sticky = 'se',)




        frame2=Frame(bg="#ffffff",)
        frame2.grid(row=1, column=1)

    def library_choice(self):
        test=0
        test=self.library_game.get
        print("hi", self.library_game.get)
        self.game_selection_label.configure(text = "You have chosen: " + str(libraryGames[test]),fg="#01fc07")
                #self.game_selection_label.configure(text = "You have chosen: The witcher 3!!!!!",fg="#01fc07")


#Main Routine
root=Tk()
window = SteamGUI(root)
root.geometry("800x700+0+0")
root.title("Steam Basic")
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...