Quantcast
Channel: Recent Questions - Stack Overflow
Viewing all articles
Browse latest Browse all 16420

Trying to replace the letters of a word to underscore

$
0
0

So as the title gives away, I wanna replace the letters of a word (That you input) to underscore ( _ ) or atleast to something different.

Now I have made a topic about this before and got some help, but I couldn't figure out how to apply it to my code. So with his help and we both agreed it would be best if I made a new topic and also translated my code (Originally I am Dutch so) for better clarity.

So in the section "class ChooseMain(tk.Frame):" I have a user input a word that will be the word to guess.

The code in question for the input is:

self.woordEntry = tk.Entry(self, textvariable=self.controller.shared_data["chosenWord"])

Which in turn is sent to the next class called "ChosenMain" through this code:

btnContinue = tk.Button(self, text="Continue", command=lambda: controller.show_frame("ChosenMain"))

Now in the next class ("ChosenMain" in this case) it will show 3 things. 1 is word that was inputted on the previous screen and 2 buttons.

The word that was put in is displayed like this:

wordLabel = tk.Label(self, textvariable=self.controller.shared_data["chosenWord"], font=("futura"))wordLabel.pack(side="top")

Now this shows the word that was input as normal but obviously I don't want to show it as normal, preferably as _ _ _ _ or something similar. And that is where I am stuck.

Now as mentioned I did get help before this which was here: Trying to replace label text to underscore for a game of hangman

As mentioned there, I tried the solutions posted there but I just couldn't get the wordLabel section to be changed to _ or * or anything really.

I'll post my full code below this, and I hope I didn't forget to translate something. Again if there is more information required or whatever. Feel free to comment here or message me and I will try my best to help!

#Hangmanimport tkinter as tkclass Hangman(tk.Tk):    def __init__(self, *args, **kwargs):        tk.Tk.__init__(self, *args, **kwargs)        self.shared_data = {"chosenWord": tk.StringVar()        }        container = tk.Frame(self)        container.pack(side="top", fill="both", expand=True)        container.grid_rowconfigure(0, minsize=500,  weight=1)        container.grid_columnconfigure(0, minsize=600, weight=1)        self.frames = {}        for F in (ChooseMain, ChosenMain):            page_name = F.__name__            frame = F(parent=container, controller=self)            self.frames[page_name] = frame            frame.grid(row=0, column=0, sticky="nsew")        self.show_frame("ChooseMain")    def show_frame(self, page_name):        for frame in self.frames.values():            frame.grid_remove()        frame = self.frames[page_name]        frame.grid()class ChooseMain(tk.Frame):    def __init__(self, parent, controller):        tk.Frame.__init__(self, parent)        self.controller = controller        label = tk.Label(self, text="Choose your word")        label.pack(side="top", fill="x", pady="10")        self.wordEntry = tk.Entry(self, textvariable=self.controller.shared_data["chosenWord"])        self.wordEntry.pack(pady=10)        btnContinue = tk.Button(self, text="Continue", command=lambda: controller.show_frame("ChosenMain"))        btnContinue.pack()class ChosenMain(tk.Frame):        def __init__(self, parent, controller):        tk.Frame.__init__(self, parent)        self.controller = controller        label = tk.Label(self, text="Guess the word!")        label.pack(side="top", fill="x", pady=10)        wordLabel = tk.Label(self, textvariable=self.controller.shared_data["chosenWord"], font=("futura"))        wordLabel.pack(side="top")        self.wentry = tk.Entry(self)        self.wentry.pack(pady=10)        GuessButton = tk.Button(self, text="Guess!", command=self.GuessWord)        GuessButton.pack()        NewWoord = tk.Button(self, text="Choose different word", command=self.ChangeWord)        NewWoord.pack()    def GuessWord(self):        return True    def ChangeWord(self):        self.refresh()        self.controller.show_frame("ChooseMain")    def refresh(self):        self.wentry.delete(0, "end")        #self.text.delete("1.0", "end")        self.wentry.focus_set()if __name__ == "__main__":    galgbord = Hangman()    galgbord.mainloop()

Viewing all articles
Browse latest Browse all 16420

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>