【问题标题】:Python's Tkinter Entry not appearing on windowPython 的 Tkinter 条目未出现在窗口中
【发布时间】:2020-10-27 04:08:12
【问题描述】:

我正在尝试创建一个窗口,该窗口将通过条目进行输入,并且可以是网址或 IP 地址,并且我将使用循环来更新标签的文本以每秒显示当前的 ping。但我一开始就被困住了,因为我的条目不会出现在我的窗口上。这是我的代码:

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()

我哪里出错了?我已经尝试了几次更改,但仍然无法让它出现在那里。任何帮助将不胜感激。

谢谢。

【问题讨论】:

  • 我认为画布隐藏了条目小部件,您可以通过说txtf.pack(before=canvas) 看到它,这将首先打包条目,然后是画布。它总是在那里,只是您不允许调整窗口大小并为其固定大小。所以摆脱window.geometry()
  • @CoolCloud 谢谢它的工作!但是你能帮我做一件事吗?我希望将条目嵌入到画布上,但在打包之前对其进行单独的分区,就像它根据条目的包装侧移动画布一样。我希望条目位于画布顶部。
  • 好的,所以我浏览了 python 的文档,发现我可以使用 canvas.create_window() 方法来嵌入它。顺便说一句,感谢@CoolCloud。
  • 是的,像这样canvas.create_window(100,20,window=txtf)

标签: python tkinter tkinter-entry


【解决方案1】:

您的条目位于画布下方,但由于 (1) 您的窗口 geometry 指定的尺寸小于画布请求的尺寸,并且 (2) 您将其设置为不可调整大小,因此您永远无法访问它。

选择如何解决这个冲突;下面的示例设置画布的大小,并让窗口调整大小以包含其所有小部件。

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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-02
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    相关资源
    最近更新 更多