Search code examples
pythontkintertkinter-entry

Python's Tkinter Entry not appearing on window


I am trying to make a window that would take an input through an entry and that would be either a web address or ip address and i would use a loop to update the text of a label to show the current ping every second. But I'm stuck at the very beginning because my entry would not appear on my window. Here is my code:

import tkinter as tk
from tkinter import *


window = tk.Tk()
window.title("Server Status")
window.geometry('400x600')
window.resizable(0,0)

canvas = tk.Canvas(window,height=600,width=1000,bg='#263D42')
canvas.pack()


txtf=tk.Entry(window, width=10)
txtf.pack()



window.mainloop()

Where am I going wrong? I have tried it with several changes but still cant get it to appear there. Any help would be appreciated.

Thanks.


Solution

  • Your entry is below the canvas, but because (1) your window geometry specifies a smaller size than that requested for the canvas, and (2) you set it to be non resizable, you can never access it.

    Choose how to resolve this conflict; the example below sets the size of the canvas, and lets the window resize to enclose all its widgets.

    import tkinter as tk
    
    
    window = tk.Tk()
    window.title("Server Status")
    
    canvas = tk.Canvas(window, height=600, width=1000, bg='#263D42')
    canvas.pack()
    
    txtf = tk.Entry(window, width=10)
    txtf.pack()
    
    window.mainloop()