Python tkinter 笔记 [pack,place,grid 布局管理]
疫情期间无聊,重回python练习GUI,网上基本PYQT5教程笔记多,但详细tkinter 的内容过少,因此笔记记录。
1. 布局方法
pack() 方法
after=widget - #紧接后续控件
anchor=NSEW (or subset) - # 坐标指定方向N,S,E,W 分别代表东西南北四个方位
before=widget - 放在控件之前
expand=bool - 若为1,同步放大控件
fill=NONE #设置控件全填充 ‘X’横方向 or ‘Y’纵方向 or ‘BOTH’全屏方向
in=master #包含控件
in_=master #包含控件,in_方便关键字用法
ipadx=amount #横轴留余(内部留白的空间距离)
ipady=amount #纵轴留余 (内部留白的空间距离)
padx=amount #横轴间余(外部间隔的空间距离)
pady=amount #纵轴间余 (外部间隔的空间距离)
side=TOP or BOTTOM or LEFT or RIGHT #放置的空间方位
place()方法
in=master #放置主控件内
in_=master #同上
x=amount #坐标位置x
y=amount #坐标位置y
relx=amount #x位置窗口比例
rely=amount #y位置窗口比例
anchor=NSEW #位置方向
width=amount #像素宽
height=amount #像素高
relwidth=amount #宽度比例,0-1 之间
relheight=amount #高度比例,0-1之间
bordermode="inside" or "outside" #考虑主控件边框
Grid() 方法
column=number 单元格的列0
columnspan=number 占多个单元格列
in=master
in_=master
ipadx=amount
ipady=amount
padx=amount
pady=amount
row=number #行数 与column 相同
rowspan=number #占多个行
sticky=NSEW #单元格方位
2. 布局使用
2.1 主界面框架如下,则方便使用 grid() 方法来排布
3. 实例 -python电子书
源码
import tkinter import tkinter as tk class window: def __init__(self): self.root = tk.Tk() self.root.geometry('900x600') self.listbox = tk.Listbox(self.root,width=35) for i in range(100): self.listbox.insert("end", "文章标题:"+str(i)) self.listbox.pack(side="left", fill="both",padx=2,pady=10) self.article = tk.Label(self.root,text = "这里面是文章内容",bg='light green',justify=tk.LEFT).pack(side='top',padx=2,pady=10,fill='both',expand=1) self.scrollbar = tk.Scrollbar(self.article, orient=tk.HORIZONTAL) self.root.mainloop() if __name__ == '__main__': app = window()
最后用pyinstaller 到出exe 即可