Also ich muss ein Spiel mit Felder in tkinter programmieren, dieses Feld besteht aus 7x7 buttons die man drücken kann. Durch das drücken wird der Text auf den Button umgeschrieben. Nun bekomme ich aber folgende Fehlermeldung:
if buttons["text"] == " " and c_click.click == True:
TypeError: 'StringVar' object is not subscriptable
Der Code sieht dabei so aus (gekürzt)
import tkinter as tk
import tkinter.messagebox as mb
import random
from tkinter import *
class c_click(): click = True
root = tk.Tk() root.title("Spiel")
def spiel(buttons):
if buttons["text"] == " " and c_click.click == True: buttons["text"] = "W" c_click.click = False elif buttons["text"] == " " and c_click.click == False: buttons["text"] = "B" c_click.click = True
buttons = StringVar()
button1=Button(root, text=" ", font=('Arial 30 bold'), \ height = 1, width = 3, command = lambda:pahtum(button1)) button1.grid(row = 1, column = 0, sticky = S+N+E+W)
if __name__ == '__main__': spiel(buttons) root.mainloop()
Im Code oben ist nur ein button zu sehen, alle 49 buttons hier rein zu kopieren wäre sinnlos
Seltsam finde ich aber, dass ein Button, wenn ich drauf drücke jenachdem trotz der Fehlermeldung mit B oder W beschrieben wird. Also was hat
TypeError: 'StringVar' object is not subscriptable
zu bedeuten und wie fixxe ich das?
Danke