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