为何使用pack()方法时我的Tkinter框架无法处于同一水平位置?
用Tkinter的.pack()实现两个框架水平相邻
你当前代码里用anchor=NW和anchor=NE会让两个框架分别贴在窗口左上角和右上角,自然无法相邻。要实现水平并排,只需调整.pack()的参数:
基础固定尺寸实现
修改后的代码如下:
from tkinter import * window = Tk() window.title("test") window.geometry('800x600') question_frame = Frame(window, bg="yellow", width=400, height=450) # side=LEFT 指定框架从左往右排列,fill=Y 确保框架保持设置的高度 question_frame.pack(side=LEFT, fill=Y) history_frame = Frame(window, bg="blue", width=400, height=450) history_frame.pack(side=LEFT, fill=Y)
自适应窗口大小实现
如果希望两个框架能随窗口调整自动平分宽度,添加fill=BOTH和expand=True:
from tkinter import * window = Tk() window.title("test") window.geometry('800x600') question_frame = Frame(window, bg="yellow") question_frame.pack(side=LEFT, fill=BOTH, expand=True) history_frame = Frame(window, bg="blue") history_frame.pack(side=LEFT, fill=BOTH, expand=True)
关键参数说明
side=LEFT:指定组件排列方向,LEFT表示从左到右依次排列,也可用RIGHT实现从右到左排列fill=Y/BOTH:控制组件在垂直方向(Y)或垂直+水平方向(BOTH)填充分配空间,避免框架因无内容被压缩expand=True:允许窗口大小变化时,组件自动扩展占据额外可用空间
内容的提问来源于stack exchange,提问作者BroWhat
相关产品推荐
相关产品推荐

