【发布时间】:2020-10-08 09:12:21
【问题描述】:
我正在尝试配置一个文本框和文本框下方的 3 个按钮在一行居中 我不想扩大它们以填充所有区域。只是在中心保持原来的大小。
我试图用包或网格来做到这一点。但我真的很困惑。我还尝试将文本框和按钮放在不同的框架上,这样也许它会分开小部件并让我配置它而不会弄乱东西(因为一切都是相对于另一个......)......但我什么都没有这看起来不错。
我还想学习如何以正确的方式使用网格,如果我有各种小部件和按钮,一个在另一个之下,没有“列跨度”,或者调整按钮内的文本长度以匹配它们上面的小部件...
在这个例子中。我怎样才能使按钮居中?我必须使用 side=tkinter.LEFT 才能将它们一个接一个地放置。但是他们也坚持向左的问题......
import tkinter
window = tkinter.Tk()
frame1 = tkinter.Frame(window).pack()
textbox1 = tkinter.Text(frame1, width=70, height=15).pack(side=tkinter.TOP)
button1 = tkinter.Button(frame1, text="button1").pack(side=tkinter.LEFT)
button2 = tkinter.Button(frame1, text="button2").pack(side=tkinter.LEFT)
button3 = tkinter.Button(frame1, text="button3").pack(side=tkinter.LEFT)
window.mainloop()
在这个例子中,如果我设置另一个框架来分隔小部件...... 它也没有到达中心......
import tkinter
window = tkinter.Tk()
frame1 = tkinter.Frame(window).pack(side=tkinter.TOP)
textbox1 = tkinter.Text(frame1, width=70, height=15).pack(side=tkinter.TOP)
frame2 = tkinter.Frame(window).pack(side=tkinter.TOP)
button1 = tkinter.Button(frame2, text="button1").pack(side=tkinter.LEFT)
button2 = tkinter.Button(frame2, text="button2").pack(side=tkinter.LEFT)
button3 = tkinter.Button(frame2, text="button3").pack(side=tkinter.LEFT)
window.mainloop()
在这个例子中。使用网格,如果我使用不同的框架,按钮只会跳到文本框上并搞砸一切......
import tkinter
window = tkinter.Tk()
frame0 = tkinter.Frame(window).grid(row=0, column=0)
frame1 = tkinter.Frame(window).grid(row=1, column=0)
textbox = tkinter.Text(frame0, width=70, height=15).grid(row=0, column=0)
button1 = tkinter.Button(frame1, text="button1").grid(row=0, column=0)
button2 = tkinter.Button(frame1, text="button2").grid(row=0, column=1)
button3 = tkinter.Button(frame1, text="button3").grid(row=0, column=2)
window.mainloop()
有人可以向我解释一下哪种方式更好使用以及如何更好地理解它......? 它总是让我感到困惑......
提前致谢, 伊莱兰
【问题讨论】:
标签: python button tkinter textbox widget