是否可以在 Tkitnter 窗口中放置一个我创建的圆圈,该窗口已经使用 place 方法放置了很少的标签和输入框



我有一个需求,我已经设计了一个GUI窗口,其中包含很少的文本框和标签供用户输入。我使用 .place(x=..., y=...) 方法做到了这一点。

现在,我想在同一个窗口中使用相同的位置(x=..., y=...)方法将一个圆放在特定位置,其中包含已包含的标签和文本框。为此,我尝试调用.create_oval(x1,y1,x2,y2)方法并放置它。但是,由于已经可用的文本框和标签,我似乎没有工作。有没有可能做到,我想要什么?

下面是我的代码片段-

from Tkinter import *
l0 = Label(root, image=photo)
l1 = Label(root, text="Server IP", fg="blue")
l2 = Label(root, text="Username", fg="blue")
l3 = Label(root, text="Port", fg="blue")
l4 = Label(root, text="Network Status", fg="black", font=("Arial", 14))
e1 = Entry(root, width=20)
e2 = Entry(root, width=20)
e3 = Entry(root, width=20)
loginbtn = Button(root,  bg="green", fg="white", text="Login", command=logindetails)
clearbtn = Button(root, bg="red", fg="white", text="Clear", command=cleartext)
#draw the circles to show network status
w = Canvas(root, width=630, height=350)
w.create_oval(500,40,560,100, fill="blue")

l0.place(x=10, y=10)
l1.place(x=10, y=210)
e1.place(x=90, y =210)
l2.place(x=10, y=240)
e2.place(x=90, y=240)
l3.place(x=10, y=270)
e3.place(x=90, y=270)
l4.place(x=490, y=20)
w.place(x=500, y=40)
root.mainloop()

当我运行这个程序时,我得到了一个输出,但没有创建的圆。我在哪里错过了这里。任何帮助将不胜感激。谢谢!

您大部分时间都获得了 mcve,但您的代码没有按发布的那样运行。

错过了两件事:1)您只需要一个比要显示的圆圈稍大的锥形 - 请参阅修订后的 Canvas 语句;2)你需要你的容器足够大来显示所有内容,并且顶层不会自行扩展 - 参见root.geometry。

from tkinter import *
root = Tk()
root.geometry('700x400')
l1 = Label(root, text="Server IP", fg="blue")
l2 = Label(root, text="Username", fg="blue")
l3 = Label(root, text="Port", fg="blue")
l4 = Label(root, text="Network Status", fg="black", font=("Arial", 14))
e1 = Entry(root, width=20)
e2 = Entry(root, width=20)
e3 = Entry(root, width=20)
#draw the circles to show network status
w = Canvas(root, width=64, height=64)
w.create_oval(2,2,62,62, fill="blue")
l1.place(x=10, y=210)
e1.place(x=90, y =210)
l2.place(x=10, y=240)
e2.place(x=90, y=240)
l3.place(x=10, y=270)
e3.place(x=90, y=270)
l4.place(x=490, y=20)
w.place(x=500, y=60)
root.mainloop()

这个稍微修改的代码或多或少可以按照我相信你想要的那样工作。 请注意,圆周围需要一些边距以避免"扁平化"。

相关内容

  • 没有找到相关文章