从这几天开始,我不明白为什么pandedwindow小部件不是一直到底部框架的顶部。如果我阻挡了框架部分,PanedWindow会一直走到窗口底部。
请随意批评或评论如何在课堂上改进我的课程。
import tkinter as t
def main():
root = t.Tk()
root.geometry("350x470")
root.config(background="LightBlue4")
root.title("basic window")
app = Application (root)
root.mainloop()
class Application():
def __init__(self, parent):
self.window = parent
self.panes=t.PanedWindow(self.window, sashwidth=3)
self.panes.pack(fill=t.BOTH, expand="yes")
self.frame1=t.Frame(self.window, bg="yellow", bd=2, relief=t.RIDGE)
self.frame1.pack(anchor=t.S, fill=t.X, expand=1)
self.createWidgets()
def createWidgets(self):
self.entry=t.Entry(self.frame1, width=25)
self.entry.pack(side=t.LEFT, expand=1)
self.label2=t.Label(self.frame1, text="Update ", fg = "light green", bg = "dark green", font = "Helvetica 16 bold italic" , bd=2, relief=t.RAISED)
self.label2.pack(side=t.LEFT, fill=t.X, padx=5)
self.label3=t.Label(self.frame1, text="Quit", fg = "blue", bg = "yellow", font = "Verdana 12 bold" , bd=2, relief=t.RAISED)
self.label3.pack(side=t.LEFT, fill=t.X, padx=5)
self.left = t.Label(self.window, text="Left Pane", bd=4, bg="tan", relief=t.FLAT)
self.left.pack()
self.right = t.Label(self.window, text="Right Pane", bd=4, bg="light cyan", relief=t.FLAT)
self.right.pack()
self.panes.add(self.left, stretch="always")
self.panes.add(self.right )
self.panes.sash_place(0,120,0)
if __name__ == '__main__':
main()
答案 0 :(得分:0)
paned窗口不会延伸完整的垂直高度,因为它与self.frame1
共享空间。两者都有可扩展到可用空间的选项,所以他们最终都占了一半。
你在self.frame1
关闭扩展,paned窗口将占用所有可用空间:
self.frame1.pack(anchor=t.S, fill=t.X, expand=False)
答案 1 :(得分:0)
我不明白为什么pandedwindow小部件不是全部 到底部框架的顶部。
这是因为您打包self.frame1
和self.panes
的方式将这两个小部件放在一起。这是您在评论此行时可以看到的内容:#self.createWidgets()
:
如果您想要缩小PaneWindow小部件,则需要使用side
选项并排打包self.frame1
和self.panes
:
self.panes.pack(fill=t.BOTH, expand="yes", side = t.LEFT)
self.frame1.pack(anchor=t.S, fill=t.X, expand=1, side = t.LEFT)
<强>结果:强>