简体   繁体   中英

overlapping statuses using tkinter module

I am trying to work on GUI using tkinter module. I created label with random greetings generator. However,they are overlapping with previous generated labels.This is the code:

import tkinter
import random

window = tkinter.Tk()
# to rename the title of the window
window.title("GUI")

window.geometry("500x500")

#defining Functions
def search_greetings():
    phrases = ["Hallo ", "Hoi ", "Greetings "]
    name = str(entry1.get())
    text = ".Please enter your search term below."
    return phrases[random.randint(0, 2)] + name + text

def search_display():
    greeting = search_greetings()
    # This creates the text field
    greeting_display = tkinter.Label(window,text = search_greetings())
    greeting_display.grid(row=6,column=1)
    search_box = tkinter.Entry()
    search_box.grid(row=7)


# pack is used to show the object in the window
label = tkinter.Label(window, text = "Hello World! Welcome to my app")
label.grid(row = 0)

# creating 2 text labels and input labels

tkinter.Label(window, text = "Username").grid(row = 2) # this is placed in 1 0
# 'Entry' is used to display the input-field
entry1 = tkinter.Entry()
entry1.grid(row = 2, column = 1) # this is placed in 1 1

tkinter.Label(window, text = "Password").grid(row = 3) # this is placed in 2 0
tkinter.Entry().grid(row = 3, column = 1) # this is placed in 2 1

# 'Checkbutton' is used to create the check buttons
tkinter.Checkbutton(window, text = "Keep Me Logged In").grid(columnspan = 2) # 'columnspan' tells to take the width of 2 columns
                                                                             # you can also use 'rowspan' in the similar manner


# Submit button
button = tkinter.Button(text = "Submit",command = search_display).grid(row = 5)     

window.mainloop()

It is returning the labels like below: Greetings 1234.Please enter your search term below.

G Hallo ashita.Please enter your search term below.v.

G Hallo ashita.Please enter your search term below..v.

Please check the error in the code.

Seems like you are making a new Label every time. You can edit a Label's text like so:

mylabel = tkinter.Label(root, text="First!")
mylabel["text"] = "Second!"

This will display "Second!" (after being packed). You can even change the text after the Label is packed.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM