Python Tkinter

Python Tkinter

Tkinter介绍

  1. Python标准库提供的tkinter用于创建图形用户界面的桌面的应用。基于Python开发桌面应用与Tkinter是一个复杂的任务

  2. Tkinter创建顶层窗口可以通过以下步骤:

    1. 引入Python的Tkinter模块。
    2. 创建应用程序的主窗口。
    3. 在窗口内添加小工具 ( 如标签、按钮、帧等)。
    4. 呼叫主事件循环,以便捕获在用户的计算机屏幕上的动作。
  3. 示例

from tkinter import *  
#创建一个主窗口 
root = Tk()  
#进入事件主循环  
top.mainloop()
  • 输出:

Tkinter Widgets控件

  • Tkinter有各种不同的部件,如:按钮、画布、checkbutton 、条目等。使用 Python 构建应用程序的 GUI 界面。
Widget 描述
Button 按钮:用户增加各种按钮
Entry 输入控件:显示单行文本域,一般用户接受用户输入值
Frame 框架:在屏幕上显示一个矩形区域,多用来作为容器,可用放入另外的控件
Label 标签:可以显示文本和位图
Text 文本:它不同于输入,因为它提供了一个多行文本域的用户,使得用户能够写入文本和编辑文本
Menu 菜单:显示菜单栏,下来菜单栏和弹出菜单栏
Menubutton 菜单按钮:该文本框用于显示给用户的菜单项目
MessageBox 消息框:用来显示消息框的桌面应用程序
Message 消息:消息控件用于显示消息给用户,与 label 比较类似
ListBox 列表框:显示一个字符串列表给用户
Canvas 画布:用于在窗口上绘制图形,显示图形元素,如线条或文本
Radiobutton 单选按钮:不同于将 RadioButton checkbutton 。这里向用户提供各种选项,并且用户可以只选择其中一个选项。
Chenkbutton 多选框:用于显示多选框的工具
Scale 范围控件:显示一个数值刻度,为输出限定范围的数字区间
Scrollbar 滚动条:它向用户提供滚动条 ,当内容超过可视化区域时使用,用户可以滚动窗口
Toplevel 容器:它被用于创建独立窗口,提供一个单独的对话框
Spinbox 输入:与Entry类似,但是可以指定输入范围值
PanedWindow 窗口布局管理:它就像一个容器 , 包含水平或垂直控件的窗格
LabelFrame 容器控件:一个常用与复杂的窗口布局

Python Tkinter 布局管理器

  • MayaVi 所指定几何形状的方法,所述微件的显示表示。Python Tkinter 布局管理器提供了以下方法:
    • The pack() method
    • The grid() method
    • The place() method
  1. Python Tkinter pack() 方法
  • 在 pack()的 Widget 小工具中用于组织块。控件添加到该位置的应用使用 Python 的 pack() 方法可以通过使用各种方法调用中指定的选项,然而,这些控制器通常更少被添加在非组织行为方式。

  • 语法:

    widget.pack(options)
    
  • 可能选项的列表 , 可以通过在pack()如下

    • expand :如果将扩展设置为 true 时, 控件将会展开以填充任何空间。
    • Fill :默认情况下,填充设置为 NONE。然而,我们可以将其设置为在 X 或 Y 以确定该控件是否包含任何额外的空间。
    • side:它代表了在父控件将被放置在窗口上(LEFT|RIGHT|TOP|BOTTOM)。
  • 示例

from tkinter import *  
root = Tk()  
redbutton = Button(root, text = "Red", fg = "red")  
redbutton.pack( side = LEFT)  
greenbutton = Button(root, text = "Black", fg = "black")  
greenbutton.pack( side = RIGHT )  
bluebutton = Button(root, text = "Blue", fg = "blue")  
bluebutton.pack( side = TOP )  
blackbutton = Button(root, text = "Green", fg = "red")  
blackbutton.pack( side = BOTTOM)  
root.mainloop()
  • 输出

  1. Python Tkinter grid() (网格)方法
  • 网格经理组织 (几何) 的微件的列表形式。我们可以指定行和列的选项中的方法调用。我们还可以指定列的宽度 (跨度) 或高度 (rowspan) 的微件,这是一个更有组织的方式来将微件的 Python 应用。在使用网格 (语法)
  • 语法
widget.grid(选项)
  • 常用的选项列表
选项 描述
row 行:行的数量。最上面的行表示为 0
column 列:在数量栏的控件将被放置。最左边的列表示为 0
rowspan 跨行。行的数量,height 被扩大
columnspan 跨列。它代表了最高数目的列,width被扩大
ipadx、ipady 它表示像素对微件 Widget 垫内的边界
padx 、pady 它表示像素对之外的 Widget 窗件的边界
粘性 如果小区带宽大于一个微件 , 则粘性是用于指定控件的位置。它可以是级联的字母表示该位置的粘性的小工具。它可以是 N 、 E 、 W 、 S 、 NE 、 NW 、南北向、东西向 , ES
  • 示例
from tkinter import *  
root = Tk()  
name = Label(root, text = "Name").grid(row = 0, column = 0)  
e1 = Entry(root).grid(row = 0, column = 1)  
password = Label(root, text = "Password").grid(row = 1, column = 0)  
e2 = Entry(root).grid(row = 1, column = 1)  
submit = Button(root, text = "Submit").grid(row = 4, column = 0)  
root.mainloop()
  • 输出:

  1. Tkinter Python place() 方法
  • place()组织几何形状的小部件的特定 X 和 Y 坐标
  • 语法
widget.place(options)
  • 常用选项列表
选项 描述
X、Y 它是指在水平和垂直像素的偏移
width、heigth 它是指高度和宽度中的像素
  • 示例
from tkinter import *  
root = Tk()  
root.geometry("400x250")  
name = Label(root, text = "Name").place(x = 30,y = 50)  
email = Label(root, text = "Email").place(x = 30, y = 90)  
password = Label(root, text = "Password").place(x = 30, y = 130)  
e1 = Entry(root).place(x = 80, y = 50)  
e2 = Entry(root).place(x = 80, y = 90)  
e3 = Entry(root).place(x = 95, y = 130)  
root.mainloop()
  • 输出

posted @ 2021-05-17 15:03  廿九九  阅读(563)  评论(0)    收藏  举报