Python Tkinter


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

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

引入Python的Tkinter模块。

创建应用程序的主窗口。

在窗口内添加小工具 ( 如标签、按钮、帧等)。

呼叫主事件循环,以便捕获在用户的计算机屏幕上的动作。

实例

# !/usr/bin/python3  
from tkinter import *  
#creating the application main window.   
top = Tk()  
#Entering the event main loop  
top.mainloop()

输出 :

360截图17500924153262.png

Tkinter Widgets控件

有各种不同的部件如按钮、画布、 checkbutton 、条目等。使用 Python 构建应用程序的 GUI 。

Sn
 Widget 
描述
1Button
按钮:用于增加各种按钮
2Canvas
画布:用于在窗口上绘制图形,显示图形元素如线条或文本。
3Checkbutton
多选框:用于显示多选框的工具。
4Entry

输入控件:显示单行文本域

。它一般用于接受用户值。

5Frame
框架:在屏幕上显示一个矩形区域,多用来作为容器, 另外的窗件可以加入进来
6Label
标签:可以显示文本和位图
7ListBox
列表框:显示一个字符串列表给用户
8Menubutton
菜单按钮:该文本框用于显示给用户的菜单项目
9Menu
菜单:显示菜单栏,下拉菜单和弹出菜单
10Message 
消息:消息控件用于显示消息给用户,与label比较类似
11Radiobutton
单选按钮:不同于将 RadioButton checkbutton 。这里 , 向用户提供各种选项 , 并且用户可以只选择其中一个选项。
12Scale
范围控件:显示一个数值刻度,为输出限定范围的数字区间
13Scrollbar
滚动条:它向用户提供滚动条 ,当内容超过可视化区域时使用,用户可以滚动窗口
14Text文本:它不同于输入,因为它提供了一个多行文本域的用户,使得用户能够写入文本和编辑文本
15Toplevel 
容器:它被用于创建独立窗口,提供一个单独的对话框
16Spinbox输入:与Entry类似,但是可以指定输入范围值
17PanedWindow 
窗口布局管理:它就像一个容器 , 包含水平或垂直控件的窗格。
18LabelFrame
容器控件:一个常用与复杂的窗口布局。 
19MessageBox

消息框:用来显示消息框的桌面应用程序。


Python Tkinter 几何管理

MayaVi 所指定几何形状的方法 , 所述微件的显示表示。Python Tkinter 几何形状提供了以下方法。

The pack() method

The grid() method

The place() method

让我们讨论每一个他们详细研究。

Python Tkinter pack () 方法

在pack  ( ) 的 Widget 小工具中用于组织块。控件添加到该位置的应用使用 Python 的 pack () 方法可以通过使用各种方法调用中指定的选项。

然而,这些控制器通常更少被添加在非组织行为方式。

所使用的语法被给定如下:

语法

widget.pack(options)

可能选项的列表 , 可以通过在pack ()如下。

expand :如果将扩展设置为 true 时, 控件将会展开以填充任何空间。

Fill :默认情况下 , 填充设置为 NONE 。然而 , 我们可以将其设置为在 X 或 Y 以确定该控件是否包含任何额外的空间。

size:它代表了在父控件将被放置在窗口上。

实例

# !/usr/bin/python3  
from tkinter import *  
parent = Tk()  
redbutton = Button(parent, text = "Red", fg = "red")  
redbutton.pack( side = LEFT)  
greenbutton = Button(parent, text = "Black", fg = "black")  
greenbutton.pack( side = RIGHT )  
bluebutton = Button(parent, text = "Blue", fg = "blue")  
bluebutton.pack( side = TOP )  
blackbutton = Button(parent, text = "Green", fg = "red")  
blackbutton.pack( side = BOTTOM)  
parent.mainloop()

输出 :

python-tkinter2.png

Python Tkinter (网格) 方法

网格经理组织 (几何) 的微件的列表形式。我们可以指定行和列的选项中的方法调用。我们还可以指定列的宽度 (跨度) 或高度 (rowspan) 的微件。

这是一个更有组织的方式来将微件的 Python 应用。在使用网格 (语法) 。

语法

widget.grid (选项)

可能选项的列表 , 可以在格栅的方法 (如下) 。

在数量栏的控件将被放置。最左边的列表示为 0 。

columnspan 

控件的宽度。它代表了最高数目的列 , 所述列被扩大。

ipadx , ipady

它表示像素对微件 Widget 垫内的边界。

padx 、帕德

它表示像素对之外的焊盘的 Widget 窗件的边界。

行数量的微件。最上面的行表示为 0 。

rowspan

小工具的高度。行的数量 , widget 的扩张。

粘性

如果小区带宽大于一个微件 , 则粘性是用于指定控件的位置。它可以是级联的字母表示该位置的粘性的小工具。它可以是 N 、 E 、 W 、 S 、 NE 、 NW 、南北向、东西向 , ES 。

实例

# !/usr/bin/python3  
from tkinter import *  
parent = Tk()  
name = Label(parent,text = "Name").grid(row = 0, column = 0)  
e1 = Entry(parent).grid(row = 0, column = 1)  
password = Label(parent,text = "Password").grid(row = 1, column = 0)  
e2 = Entry(parent).grid(row = 1, column = 1)  
submit = Button(parent, text = "Submit").grid(row = 4, column = 0)  
parent.mainloop()

输出 :

python-tkinter3.png

Tkinter Python place() 方法

place()组织几何形状的小部件的特定 X 和 Y 坐标。

语法

widget.place(options)

可能选项的列表如下。

主播 :它代表了容器内控件。默认值 ( NW ) 方向 ( 左上角 )

bordermode:默认值的类型 , 内部边界是指忽略家长的内部边界。另一选项是外部。

高度 , 宽度 :它是指高度和宽度中的像素。

relheight , relwidth:它被表示为浮动在 0.0 和 1.0 之间的分数表示的高度和宽度。

放松 , 依靠 :它表示为在 0.0 和 1.0 之间浮动 , 该偏移是在水平和垂直方向。

X 、 Y :它是指在水平和垂直像素的偏移。

# !/usr/bin/python3  
from tkinter import *  
top = Tk()  
top.geometry("400x250")  
name = Label(top, text = "Name").place(x = 30,y = 50)  
email = Label(top, text = "Email").place(x = 30, y = 90)  
password = Label(top, text = "Password").place(x = 30, y = 130)  
e1 = Entry(top).place(x = 80, y = 50)  
e2 = Entry(top).place(x = 80, y = 90)  
e3 = Entry(top).place(x = 95, y = 130)  
top.mainloop()

输出:

python-tkinter4.png