我正在使用python3的tkinter进行GUI。 对于一个框架,我想结果是这样的: 但是当我尝试使用这段代码时:
master.title("Homepage")
master.title("Window to check information")
master.geometry('%dx%d+%d+%d' % (850, 800, (master.winfo_screenwidth() - 850) / 2, 0))
self.information = tkst.ScrolledText(self, wrap=tk.WORD, height=20, width=100)
self.btn1 = tk.Button(self, text='Cours', height=3, width=40)
self.btn2 = tk.Button(self, text='Absences', height=3, width=40)
self.btn3 = tk.Button(self, text='Notes', height=3, width=40)
self.btn4 = tk.Button(self, text='Return', height=3, width=40)
self.information.config(font=font.Font(size=15))
self.information.configure(background='#C0C0C0')
self.btn2.config(font=font.Font(size=12))
self.btn3.config(font=font.Font(size=12))
self.btn1.config(font=font.Font(size=12))
self.btn4.config(font=font.Font(size=12))
self.information.grid(row=0,column=0)
self.btn1.grid(row=1,column=0)
self.btn2.grid(row=1,column=1)
self.btn3.grid(row=2,column=0)
self.btn4.grid(row=2,column=1)
有人可以帮助我如何编写网格代码或打包以实现第一张图片?谢谢。
答案 0 :(得分:4)
要使ScrolledText
跨越两列,您需要在网格中使用columnspan
选项:
self.information.grid(row=0, column=0, columnspan=2)
答案 1 :(得分:0)
使用pack
方法也可以实现相同的效果,我发现它更优选,因为它处理窗口扩展比网格系统更好。
请参阅下文,了解如何实现这一目标:
from tkinter import *
root = Tk()
frametop = Frame(root)
framebottom = Frame(root)
frameleft = Frame(framebottom)
frameright = Frame(framebottom)
text = Text(frametop)
scroll = Scrollbar(frametop, command=text.yview)
btn1 = Button(frameleft, text="Course")
btn2 = Button(frameleft, text="Abscences")
btn3 = Button(frameright, text="Notes")
btn4 = Button(frameright, text="Return")
text['yscrollcommand'] = scroll.set
frametop.pack(side=TOP, fill=BOTH, expand=1)
framebottom.pack(side=BOTTOM, fill=BOTH, expand=1)
frameleft.pack(side=LEFT, fill=BOTH, expand=1)
frameright.pack(side=RIGHT, fill=BOTH, expand=1)
text.pack(side=TOP, fill=BOTH, padx=5, pady=5, expand=1)
scroll.pack(side=BOTTOM, fill=BOTH, padx=5, pady=5, expand=1)
btn1.pack(side=TOP, fill=BOTH, padx=5, pady=5, expand=1)
btn2.pack(side=BOTTOM, fill=BOTH, padx=5, pady=5, expand=1)
btn3.pack(side=TOP, fill=BOTH, padx=5, pady=5, expand=1)
btn4.pack(side=BOTTOM, fill=BOTH, padx=5, pady=5, expand=1)
root.mainloop()
这会创建四个框架,并将项目打包到指定位置,并在它们之间填充:
扩大或缩小窗口(在合理范围内,收缩过多导致Tkinter开始隐藏物品)将导致物品自动移动并改变大小。