Python图形用户界面中Tkinter的介绍、常用组件、标准属性、几何布局及使用步骤

文章目录

    • GUI
      • Tkinter常用组件
      • 标准属性
      • 几何布局
      • 组件的大致使用步骤

GUI

  • GraphicalUserInterface,图形用户界面
  • GUI for Python:
    • Tkinter
    • wxPython
    • PyQt
  • Tkinter
    • 绑定的是TK GUI工具集,用途Python包装的Tcl代码
  • PyGTK
    • Tkinter的替代品
  • wxPython
    • 跨平台的Python GUI
  • PyQt
    • 跨平台的
    • 商业授权可能有问题
import tkinter
tkinter._test()

Python图形用户界面中Tkinter的介绍、常用组件、标准属性、几何布局及使用步骤_第1张图片

Tkinter常用组件

  • 按钮

      Button		按钮组件
      RadioButton		单选框按钮
      CheckButton		选择按钮组件
      Listbox		列表框组件
    
  • 文本输入框

      Entry		单行文本框组件
      Spinbox	输入控件,可以指定输入范围值
      Text		多行文本框组件
      Message	用来显示多行文本
    
  • 标签组件

      Label			菜单组件
      MenuButton		菜单按钮组件,可以使用Menu代替
      Menu			菜单控件,用于显示菜单栏,下拉菜单,弹出菜单
    
  • 滚动条

      Scale			滑块组件
      Scrollbar		滚动条组件
    
  • 其他组件

      Canvas		画布组件
      Frame			框架组件,将多个组件编组
      Toplevel		创建子窗口容器组件
      PanedWindow		窗口布局管理的插件,可以包含一个或者多个子控件
      LabelFrame		简单的容器控件
      tkMessageBox		显示应用程序的消息框
    

标准属性

  • 标准属性也就是所有控件的共同属性
属性 描述
Dimension 控件大小
Color 控件颜色
Font 控件字体
Anchor 锚点
Relief 控件样式
Bitmap 位图
Cursor 光标

几何布局

  • pack()

    • 最简单,挨个摆放,从上往下,系统自动设置
    • side: 停靠方位,可选值LEFT,TOP,RIGHT,BOTTON
    • fill:填充方式,X,Y,BOTH,NONE
    • expande:YES/NO
    • anchor:N,E,S,W,CENTER
    • ipadx:x方向的内边距
    • ipady:y方向
    • padx:x方向外边距
    • pady:
  • place()

    • 明确方位的摆放
    • 相对位置布局,随意改变窗口大小会导致混乱
    • 使用place函数,分为绝对布局和相对布局,绝对布局使用x,y参数
    • 相对布局使用relx,rely, relheight, relwidth
  • grid()

    • 通用使用方式:组件对象.grid(设置,)
    • 利用row,column编号,都是从0开始
    • sticky: N,E,S,W表示上下左右,用来决定组件从哪个方向开始
    • 支持ipadx,padx等参数,跟pack函数含义一样
    • 支持rowspan,columnspan,表示跨行,跨列数
# pack布局案例
import tkinter
baseFrame = tkinter.Tk()
# 以下所有代码都是创建一个组件,然后布局
btn1 = tkinter.Button(baseFrame, text='A')
btn1.pack(side=tkinter.LEFT, expand=tkinter.YES, fill=tkinter.Y)

btn2 = tkinter.Button(baseFrame, text='B')
btn2.pack(side=tkinter.TOP, expand=tkinter.YES, fill=tkinter.BOTH)

btn2 = tkinter.Button(baseFrame, text='C')
btn2.pack(side=tkinter.RIGHT, expand=tkinter.YES, fill=tkinter.NONE, 
          anchor=tkinter.NE)
          
btn2 = tkinter.Button(baseFrame, text='D')
btn2.pack(side=tkinter.LEFT, expand=tkinter.NO, fill=tkinter.Y)

btn2 = tkinter.Button(baseFrame, text='E')
btn2.pack(side=tkinter.TOP, expand=tkinter.NO, fill=tkinter.BOTH)

btn2 = tkinter.Button(baseFrame, text='F')
btn2.pack(side=tkinter.BOTTOM, expand=tkinter.YES)

btn2 = tkinter.Button(baseFrame, text='G')
btn2.pack(anchor=tkinter.SE)

baseFrame.mainloop()
  • 鼠标拖动,按比例进行缩放
    Python图形用户界面中Tkinter的介绍、常用组件、标准属性、几何布局及使用步骤_第2张图片
# grid布局案例
import tkinter
baseFrame = tkinter.Tk()

#下面被注释掉的一行代码跟下面两行代码等效
#lb1 = tkinter.Label(baseFrame, text="账号: ").grid(row=0, sticky= tkinter.W)
lb1 = tkinter.Label(baseFrame, text="账号: ")
lb1.grid(row=0, sticky= tkinter.W)
en = tkinter.Entry(baseFrame)
en.grid(row=0, column=1, sticky=tkinter.E)

lb2 = tkinter.Label(baseFrame, text="密码: ").grid(row=1, sticky= tkinter.W)
tkinter.Entry(baseFrame).grid(row=1, column=1, sticky=tkinter.E)

btn = tkinter.Button(baseFrame, text="登录").grid(row=2, column=1, sticky=tkinter.W)
baseFrame.mainloop()
  • 鼠标拖动,内容固定在左上角,不动
    Python图形用户界面中Tkinter的介绍、常用组件、标准属性、几何布局及使用步骤_第3张图片

组件的大致使用步骤

  1. 创建面板
  2. 创建面板上的各种组件
    1. 指定组件的父组件,即依附关系
    2. 利用相应的属性对组件进行设置
    3. 给组件安排布局
  3. 创建多个组件
  4. 最后,启动总面板的消息循环
# label例子
import tkinter
base = tkinter.Tk()
# 负责标题
base.wm_title("label Test")

lb1 = tkinter.Label(base, text="Python Label")
# 布局
lb1.pack()

lb2 = tkinter.Label(base, text="绿色背景", background="green")
lb2.pack()

lb3 = tkinter.Label(base, text="蓝色背景", background="blue")
lb3.pack()
# 消息循环
base.mainloop()
# Button例子
import tkinter
def showLabel():
    global baseFrame
    # 在函数中定义一个Label
    # label的父组件是baseFrame
    lb = tkinter.Label(baseFrame, text="显示Label")
    lb.pack()
baseFrame = tkinter.Tk()
btn = tkinter.Button(baseFrame, text="Show Label", command=showLabel)
btn.pack()
baseFrame.mainloop()
Button的属性:
anchor     设置按钮中文字的对其方式,相对于按钮的中心位置
background(bg)   设置按钮的背景颜色
foreground(fg)  设置按钮的前景色(文字的颜色)
borderwidth(bd)  设置按钮边框宽度
cursor    设置鼠标在按钮上的样式
command    设定按钮点击时触发的函数
bitmap    设置按钮上显示的位图
font    设置按钮上文本的字体
width    设置按钮的宽度  (字符个数)
height    设置按钮的高度  (字符个数)
state    设置按钮的状态
text    设置按钮上的文字
image    设置按钮上的图片

你可能感兴趣的:(Python全栈学习,Tkinter,GUI)