Ich arbeite an einem GUI Python-Programm mit Tkinter.TkInter Entry Box ist deaktiviert
Ich habe eine Funktion, die aufgerufen wird, wenn eine Taste gedrückt wird (und wenn das Programm geladen wird). Das Programm ist derzeit nicht abgeschlossen und überprüft nur die Datenvalidierung an diesem aktuellen Punkt. Da der Standardeintrag aktuell ungültig ist, wird ein Fehler ausgegeben.
Aber nach diesem Punkt ist das Eingabefeld deaktiviert und lässt mich keine Daten eingeben. Ich kann mir nicht vorstellen, warum das passiert und ich frage mich, ob mir jemand den Grund sagen könnte, damit ich an einer Lösung arbeiten kann.
Dank
import sys
import random
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
root = Tk()
root.title("COSC110 - Guessing Game")
hint = StringVar()
guesses = []
guess_input = ''
def loadWordList(filename): #Load the words from a file into a list given a filename.
file = open(filename, 'r')
line = file.read().lower()
wordlist = line.split()
return wordlist
word = random.choice(loadWordList('words.txt'))
def getHint(word, guesses): #Get hint function, calculates and returns the current hint.
hint = ' '
for letter in word:
if letter not in guesses:
hint += '_ '
else:
hint += letter
return hint
def guessButton(guess, word, guesses):
guess = str(guess_input)
guess = guess.lower()
if not guess.isalpha():
is_valid = False
elif len(guess) !=1:
is_valid = False
else:
is_valid = True
while is_valid == False:
messagebox.showinfo("Error:","Invalid input. Please enter a letter from a-z.")
break
hint.set(getHint(word, guesses))
return hint
label_instruct = Label(root, text="Please enter your guess: ")
label_instruct.grid(row=1,column=1,padx=5,pady=10)
guess_input = Entry(root,textvariable=guess_input)
guess_input.grid(row=1, column=2)
guess_button = Button(root, text="Guess", width=15, command=guessButton(guess_input,word,guesses))
guess_button.grid(row=1, column=3,padx=15)
current_hint = Label(root, textvariable=hint)
current_hint.grid(column=2,row=2)
label_hint = Label(root, text="Current hint:")
label_hint.grid(column=1,row=2)
label_remaining = Label(root, text="Remaining guesses: ")
label_remaining.grid(column=1,row=3)
root.mainloop() # the window is now displayed
Alle Tipps sind erwünscht.
Danke, ich habe dies vor einer Weile eingereicht, aber aus dem Speicher Ihre Lösung hat mir geholfen. Prost –