#-- tkinter 一个跨平台的GUI库,对图形库TK的封装 可在win,linux或者mac下运行
import tkinter
# linux用命令进行tkinter安装 sudo apt-get install python3-tk(python3-tk)
 root = tkinter.Tk()
    root.title(‘网格布局‘)
    root.minsize(300,300)
	root.resizable(False,False)
    # 从这写内容 #
    root.mainloop()
#-- tkinter 布局
  pack() 方位布局
  place() 坐标布局
  grid() 网格布局
"""
  padx/pady 组件外部在x(y)方向上填充的空间大小,默认单位为像素
  ipadx/ipady 组件内部在x(y)方向上填充的空间大小,默认单位为像素
  anchor : “n”, “s”, “w”, “e”, “nw”, “sw”, “se”, “ne”, “center”(默认“center”) 控制组件方位
"""
#pack 属性
  ipadx=10,ipady=10,padx=20,pady=100,anchor="ne"
#place 绝对属性
  x = 20,y = 20,width = 50,height = 50
#place 相对属性
  relx = 0.05,rely = 0.05,relwidth = 0.2,relheight = 0.2
#grid 属性
  row = 3,column = 0,ipadx = 50,ipady = 10,padx = 10,pady = 10,columnspan = 2 rowspan = 2
=======================================================
import tkinter
# 生成一个窗口对象
root = tkinter.Tk()
# 设置窗口的标题
root.title("这是一个窗口")
# 设置窗口的大小
root.minsize(300,300)  # 最小窗口大小
root.maxsize(600,600)  # 最大窗口大小
# root.resizable(False,False) # 将窗口大小固定
# pack 方位布局
# ipadx 横向填充 ipady 纵向填充
# anchor:e s w n ne nw se sw(默认center) 代表方位
"""
btn1 = tkinter.Button(text="1")
btn1.pack(ipadx=10,ipady=10,padx=10,pady=10)
btn2 = tkinter.Button(text="2")
btn2.pack(idapx=10,idapy=10,padx=10,pady=10)
"""
# side属性:lef right top bottom
"""
btn1 = tkinter.Button(text="1")
btn1.pack(ipadx=10,ipady=10,padx=10,pady=10,side="left")
btn2 = tkinter.Button(text="2")
btn2.pack(ipadx=10,ipady=10,padx=10,pady=10,side="left")
"""
# place 坐标布局 
"""
	(1) 绝对布局
	(2) 相对布局
	x,y是坐标 width,height是宽度和高度
"""
# place (绝对布局)
"""
btn1 = tkinter.Button(text="1")
btn1.place(x=20,y=20,width=50,height=50)
btn3 = tkinter.Button(text="3")
btn3.place(x=160,y=20,width=50,height=50)
btn5 = tkinter.Button(text="5")
btn5.place(x=90,y=90,width=50,height=50)
btn7 = tkinter.Button(text="7")
btn7.place(x=20,y=160,width=50,height=50)
btn9 = tkinter.Button(text="9")
btn9.place(x=160,y=160,width=50,height=50)
"""
# place(相对布局)
"""
btn2 = tkinter.Button(text="2")
btn2.place(relx=0.3,rely=0.05,relwidth=0.2,relheight=0.2)
btn4 = tkinter.Button(text="4")
btn4.place(relx=0.05,rely=0.3,relwidth=0.2,relheight=0.2)
btn6 = tkinter.Button(text="6")
btn6.place(relx=0.55,rely=0.3.relwidth=0.2,relheight=0.2)
btn8 = tkinter.Button(text="8")
btn8.place(relx=0.3,rely=0.55,relwidth=0.2,relheight=0.2)
"""
# gird 网格布局
"""
btn1 = tkinter.Button(text="1")
btn1.grid(row=0,column=0,ipadx=10,ipady=10,padx=10,pady=10)
btn2 = tkinter.Button(text="1")
btn2.grid(row=0,column=1,ipadx=10,ipady=10,padx=10,pady=10)
btn3 = tkinter.Button(text="1")
btn3.grid(row=0,column=2,ipadx=10,ipady=10,padx=10,pady=10)
"""
# columnspan  列合并(左右合并)
# rowspan     行合并(上下合并)  
"""
btn0 = tkinter.Button(text="0")     
btn0.grid(row=3,column=0,ipadx=120,ipady=10,padx=10,pady=10,columnspan=3)
btn_echo = tkinter.Button(text="=")
btn_echo.grid(row=0,column=3,ipadx=10,ipady=120,padx=10,pady=10,rowspam=3)
"""
# frame
frame1 = tkinter.Frame(root,width=300,heght=50,bg="red")
frame1.pack(pady=5)
btn1 = tkinter.Button(frame1,text="1")
btn1.pack(side="left",ipadx=5,ipady=10)
btn2 = tkinter.Button(frame1,text="2")
btn2.pack(side="left",ipadx=5,ipady=10)
btn3 = tkinter.Button(frame1,text="3")
btn3.pack(side="left",ipadx=5,ipady=10)
# 固定显示窗口 (涉及队列)
root.mainloop()
"""
	pack  方位布局
	参数:ipadx ipady padx pady anchor side
	place 坐标布局
		绝对布局参数:x y padx pady
		相对布局参数:relx rely relwidth relheight
	gird  网格布局
	参数:row column ipadx ipady padx pady rowspan columnspan
"""
=======================================================
#Frame 属性
      #--划分页面
        frame1 = tkinter.Frame(root,height = 50,width = 300)
        frame1.pack_propagate(0) # 按照原定义宽高分布,不会随着其中内容的改变而改变
	    frame1.pack(pady = 10)  
        #在第一个frame中摆放组件
        btn = tkinter.Button(frame1,text = ‘1‘).pack(side = ‘left‘,padx = 20)
	
  #--各种组件 
"""
公共属性:
      text 设置文字
      bg   背景色
      fg   前景色
      bd   边框
      width  宽度
      height 高度
      anchor 按钮中的文字方位 e s w n nw ne sw se 默认center
      font 类型[,大小,粗细,斜体] 例: font= (‘黑体‘,20,‘bold‘,‘italic‘)
      command 点击按钮后触发的动作(函数)  
      变量.set(参数)  设置值
      变量.get()      获取值
"""
#--基本按钮 button
    """
      button属性:
          state 设置状态 disabled 不能用  normal 正常  
    """
#--选择按钮 Checkbutton
    """
      Checkbutton 属性:
          variable 指定变量
          onvalue  选中值
          offvalue 没选中值  
          0值在哪代表默认状态是什么(选中 没选中)
          tkinter.IntVar() tkinter.StringVar() 创建变量方式整型或字符串
    """
#--单选按钮 Radiobutton
    """
      #justify 设置内置多行文字的对其方式  left center right
    """
#--普通文本框 Entry
    """
      #密码框 show 设置密码数框的覆盖符号
      #设置变量textvariable:字符串 StringVar 整形IntVar 浮点型DoubleVar 布尔值BooleanVar 先设置变量在文本框
      #selectbackground 设置选中内容的背景色 selectforeground 选中内容的前景色
      #state 设置状态 disabled 不能用  normal 正常  readonly 只读
    """
#--多行文本 Text
    """
      多行文本 除了show与普通文本框属性一致
    """
#--标签组件Label
    """
      标签组件Label 除了show和选中设置 与普通文本框属性一致
    """
    
    
#--菜单组件
      allmenu = tkinter.Menu()
    #添加分割线
          edit.add_separator()
    #向子菜单中添加选项卡
          edit = tkinter.Menu(tearoff = 0)
          edit.add_command(label = ‘退出‘,command = demo)
    #将子菜单加入总菜单
          allmenu.add_cascade(menu = edit,label = ‘编辑‘)
    #摆放总菜单
          root.config(menu = allmenu)
#--消息框 messagebox 
"""
      属性:message title
"""
messagebox:
      showinfo        显示信息对话框
      showwarning     提示警告对话框
      showerror       显示错误对话
      askquestion     问题对话框
      askokcancel     确定还是取消对话框
      askyesno        是不是对话框
      askretrycancel  重试或者取消对话框
#--简易对话框simpledialog
"""
      属性:title ,prompt,initialvalue 
"""
simpledialog:
      askstring  字符串对话框
      askinteger 整形对话框
      askfloat   浮点数对话框
#--文件对话框filedialog
filedialog:
      #askopenfilename   请求文件名称对话框
      #askdirectory      请求文件夹对话框
      #asksaveasfilename 保存文件对话框
"""
      title = ‘请选择文件保存路径‘,
      initialdir = ‘/‘,
      initialfile = ‘默认文件名称‘,
      filetypes =((‘文本文件‘,‘*.txt‘),(‘word文件‘,‘*.doc‘),(‘任意文件‘,‘*.*‘))
"""
    
#--顶级窗口 toplevel    
      #withdraw 关闭窗口
      #iconify  隐藏窗口
      #deiconify 显示窗口
原文:https://www.cnblogs.com/bling-bling-star/p/9409571.html