python tkinter学习

tkinter教程

首先创建一个简单窗口,只需如下几句代码

import tkinter
window=tkinter.TK()

window.mainloop()

创建的窗口如图所示

在这里插入图片描述
这是一个简单的小窗口,但是远远不能满足我们的需要,它也有许多控制函数,如下表。

函数功能
title()窗口标题
geometry()窗口大小
resizable(width,height)窗口大小调整
quit()退出并销毁窗口
update()刷新

看下面这个例子

import tkinter
window=tkinter.Tk()
window.title('first tk')
window.geometry('300x300') #注意,中间是字母x

window.mainloop()

在这里插入图片描述

tkinter组件

tkinter有许多组件,见下表
在这里插入图片描述
下面介绍几个常用组件

Label组件

Label组件主要是用来在窗口上某个位置显示一个文字标签,也可以用来显示一张图片,下面介绍一下语法。
w=Label(window,options)

属性说明
bg背景颜色
bd边框宽度,默认2pixel
cursor鼠标移动到label内的形状,如 i,e,arrow,dot
font字体和大小
width部件的高
height部件的高
image图片将作为label展示
text这被设置为字符串变量,该变量可能包含一行或多行文本。
textvariable在窗口小部件内写入的文本设置为控制变量StringVar,以便可以相应地访问和更改它。

还有一些其他属性,但是不常用所有没有列举出来。

其中可变文本可由下面两句代码设置

var=tkinter.StringVar()
var.set('this is a label')

通过函数控制变量var,即可实现对label内文本的动态控制。
下面给出一个小例子。


import tkinter
window=tkinter.Tk()
window.title('first tk')
window.geometry('300x300')

vars=tkinter.StringVar()
label=tkinter.Label(window,textvariable=vars)
input=tkinter.Entry(window)
def gettext():
    vars.set(input.get())
button=tkinter.Button(window,command=gettext,text="输入")


label.grid(row=1,column=0)
input.grid(row=0,column=0)
button.grid(row=0,column=1)
window.mainloop()

显示结果
在这里插入图片描述

Listbox

列表框小部件用于向用户显示列表项。我们只能在列表框中放置文本项,并且所有文本项都包含相同的字体和颜色。

用户可以根据配置从列表中选择一个或多个项目。

下面给出了使用Listbox的语法。

属性说明
bg部件的背景颜色
bd部件边框大小,默认2pixel
cursor鼠标移动到部件内的形状,有dot,arrow等
font字体类型和大小
fg文本颜色
height它表示列表框中显示的行数。默认值为10。
width部件的宽度,以字符数衡量
heighlightcolor窗口小部件处于焦点时的列表框项目的颜色。
selectbackground被选中时的背景颜色
xscrollcommand它用于让用户水平滚动列表框。
yscrollcommand它用于让用户竖直滚动列表框。

Listbox自身有许多方法,见下表

方法说明
activate(index)用于选择指定索引处的行
delete(first,last=None)删除给定范围内的行
get(first,last=None)用于获取给定范围内存在的列表项
index(i)用于将指定索引处的行放在小部件的顶部
insert(index,* elements)用于在指定索引之前插入具有指定数量元素的新行。
see(index)用于调整列表框的位置,使索引指定的行可见
size()返回行数
xview()用于使小部件可以水平滚动
yview()它允许列表框垂直滚动

给出一个小例子

from tkinter import *

top = Tk()

top.geometry("200x250")

lbl = Label(top, text="A list of favourite countries...")

listbox = Listbox(top,height=3)

listbox.insert(1, "India")

listbox.insert(2, "USA")

listbox.insert(3, "Japan")

listbox.insert(4, "Austrelia")

# this button will delete the selected item from the list

btn = Button(top, text="delete", command=lambda listbox=listbox: listbox.delete(ANCHOR))

var=listbox.get(0,3)
print(var)

lbl.pack()

listbox.pack()

btn.pack()
top.mainloop()

显示如下图

在这里插入图片描述
通过listbox的方法,可以从列表框中每次删除一个元素。

Button

按钮小部件用于向Python应用程序添加各种类型的按钮。python允许我们根据需要配置按钮的外观。根据需要,可以设置或重置各种选项。
我们还可以将一个方法或函数与一个按钮相关联,当按钮被按下时,这个按钮被调用。
下面给出了使用按钮小部件的语法。

选项说明
activebackground鼠标移动到按钮上时的颜色
activeforeground鼠标悬停按钮时的字体颜色
bd以像素为单位的边框宽度
bg按钮背景色
command函数调用
fg按钮前景色
font按钮文本字体
height按钮高度,以文本行数或者图像像素表示
width按钮高度
image设置为按钮上显示的图像
justify它说明了多个文本行的表示方式。它设置为左对齐、右对齐和中心对齐
padx水平方向的附加填充
pady垂直方向的附加填充
underline按钮文本带下划线显示
from tkinter import *
from tkinter import messagebox
top = Tk()

top.geometry("200x100")


def fun():
    messagebox.showinfo("Hello", "Red Button clicked")


b1 = Button(top, text="Red", command=fun, activeforeground="red", activebackground="pink", pady=10)

b2 = Button(top, text="Blue", activeforeground="blue", activebackground="pink", pady=10)

b3 = Button(top, text="Green", activeforeground="green", activebackground="pink", pady=10)

b4 = Button(top, text="Yellow", activeforeground="yellow", activebackground="pink", pady=10)

b1.pack(side=LEFT)

b2.pack(side=RIGHT)

b3.pack(side=TOP)

b4.pack(side=BOTTOM)

top.mainloop()

执行结果

在这里插入图片描述

canvas

canvas小部件用于向python应用程序添加结构化图形。它用于向python应用程序绘制图形和图表。使用画布的语法如下所示。
w=Canvas(options)

选项说明
bd边框宽度,默认是2 pixel
bg画布背景色
confine置为使画布在滚动区域之外不可滚动。
cursor光标作用在画布上时的形状,如arrow,dot,circle.
height画布高度
width画布宽度
highlightcolor画布聚焦时的突出显示颜色
relief边界的类型,可以是SUNKEN,RAISED,GROOVE,RIDGE
xscrollcommand如果画布是可滚动的,这个属性应该是水平滚动条的.set()方法。
yscrollcommand如果画布是可滚动的,这个属性应该是垂直滚动条的.set()方法。

entry

entry小部件用于向用户提供单行文本框以接受用户的值。我们可以使用entry小部件接受用户的文本字符串。它只能用于来自用户的一行文本。对于多行文本,我们必须使用文本小部件。
下面给出了使用entry小部件的语法。

选项说明
bg背景色
bd边框宽度
cursor光标类型,可以为箭头(arrow),点(dot)等
fg文本颜色
font表示文本的字体类型
show用于显示其他类型的文本条目,而不是字符串,比如用*键入密码
width小部件宽度
xscrollcommand如果我们希望用户输入更多的文本,然后输入小部件的实际宽度,那么可以将entry小部件链接到水平滚动条。
highlightbackground它表示当小部件没有输入焦点时要在遍历突出显示区域中显示的颜色。
highlightcolor它表示当小部件具有输入焦点时,在小部件周围绘制的遍历突出显示矩形使用的颜色。
justify如果文本包含多行,则指定如何组织文本

下面给出一个例子


from tkinter import *

top = Tk()

top.geometry("400x250")

email = Label(top, text = "Email").place(x = 30, y = 40)

password = Label(top, text = "Password").place(x = 30, y = 80)

sbmitbtn = Button(top, text = "Submit" ,activebackground = "pink", activeforeground = "blue").place(x = 30, y = 120)

e2 = Entry(top).place(x = 95, y = 40)

e3 = Entry(top).place(x = 95, y = 80)

top.mainloop()

显示如下图

在这里插入图片描述
Entry 小部件方法

方法说明
delete(first,last=none)用于删除小部件内指定字符
get()获取小部件内写入的文本
icursor(index)用于更改插入光标的位置。我们可以指定要放置光标的字符的索引。
index(inex)用于将光标放在指定索引处所写字符的左侧。
insert(index,s)在指定索引的字符串前插入字符串
select_range(start,end)选择指定索引内的字符
select_to(index)选择从开始到指定索引的内容
xview(index)用于将entry小部件链接到水平滚动条。

下面给出一个简单的加法计算器的例子

import tkinter as tk
from functools import partial


def call_result(label_result, n1, n2):
    num1 = (n1.get())
    num2 = (n2.get())
    result = int(num1) + int(num2)
    label_result.config(text="Result = %d" % result)
    return


root = tk.Tk()
root.geometry('400x200+100+200')

root.title('Calculator')

number1 = tk.StringVar()
number2 = tk.StringVar()

labelNum1 = tk.Label(root, text="A").grid(row=1, column=0)

labelNum2 = tk.Label(root, text="B").grid(row=2, column=0)

labelResult = tk.Label(root)

labelResult.grid(row=7, column=2)

entryNum1 = tk.Entry(root, textvariable=number1).grid(row=1, column=2)

entryNum2 = tk.Entry(root, textvariable=number2).grid(row=2, column=2)

call_result = partial(call_result, labelResult, number1, number2)

buttonCal = tk.Button(root, text="Calculate", command=call_result).grid(row=3, column=0)

root.mainloop()  

执行结果

在这里插入图片描述

Scrollbar

滚动条小部件用于向下滚动列表框、文本和画布等其他小部件的内容。但是,我们也可以创建到entry小部件的水平滚动条。
下面给出了使用滚动条小部件的语法。

选项说明
activebackground小部件被聚焦时的背景颜色
bg小部件背景颜色
bd边框宽度
command它可以设置为与列表关联的过程,每次移动滚动条时都可以调用该过程。
jump用于控制滚动跳转的行为。如果设置为1,则在用户释放鼠标按钮时调用回调。
orient可以被设置为水平(VERTICAL)或者垂直(HORIZONTAL)方向
repeatdelay此选项告诉滑块开始重复向该方向移动之前要按下按钮的持续时间。默认值为300 ms。
troughcolor它代表槽的颜色。
width小部件宽度

Scrollbar还提供了两个操作方法

方法说明
get()返回滚动条当前位置的两个数字a,b
set(first,last)2设置(第一个,最后一个)它用于将滚动条连接到另一个小部件w。另一个小部件的yscrollcommand或xscrollcommand用于此方法。

下面给出一个示例

from tkinter import *

top = Tk()
sb = Scrollbar(top,orient=VERTICAL)
sb2=Scrollbar(top,orient=HORIZONTAL)
sb.pack(side=RIGHT,fill=Y)
sb2.pack(side=BOTTOM,fill=X)
mylist = Listbox(top, yscrollcommand=sb.set,xscrollcommand=sb2.set,width=15)
for line in range(30):
    mylist.insert(END, "I can tell you the Number is " + str(line))

mylist.pack(side=LEFT)
sb.config(command=mylist.yview)
sb2.config(command=mylist.xview)
mainloop()

示例结果如下

在这里插入图片描述
注意:要把滚动条绑定到某个小部件上,则必须在小部件和滚动条内互相绑定。

Menu

菜单小部件用于在Python应用程序中创建各种类型的菜单(顶级、下拉和弹出)。
顶级菜单是显示在父窗口标题栏下的菜单。我们需要创建一个新的菜单小部件实例,并使用add()方法向它添加各种命令。
下面给出了使用菜单小部件的语法。

选项说明
activebackground控件处于焦点下时控件的背景色
activeborderwidth部件位于鼠标下方时它的边框宽度
activeforeground部件处于焦点下时字体的颜色
bg部件的背景色
bd部件的边框宽度
cursor当鼠标指针悬停在小部件上时,鼠标指针变为光标类型。光标类型可以设置为箭头或点。
disabledforeground当部件被禁用时的字体颜色
font文本的字体类型
fg小部件的前景色
relief小部件边框类型,默认是RAISED
image菜单上被用作显示的图像
selectcolor选中复选按钮或单选按钮时用于显示的颜色。
tearoff默认情况下,菜单中的选项从位置1开始。如果我们将tearoff设置为1,那么它将从第0个位置开始。
title如果要更改窗口标题,请将此选项设置为窗口标题。

Menu部件带有许多方法,下面部分介绍

方法说明
add_command(options)将菜单项添加到菜单
add_radiobutton(options)将单选按钮添加到菜单
add_checkbutton(options)将复选按钮添加到菜单
add_cascade(options)它用于通过将给定菜单与父菜单关联来创建父菜单的分层菜单。
add_seperator()个菜单添加分隔线
add(type,options)将特定的菜单项添加到菜单中
delete(startindex,endindex)删除指定范围内的菜单项
index(item)获取特定菜单项的索引
invoke(index)调用与指定索引关联的选项

下面给出一个简单的例子

import tkinter as tk

root=tk.Tk()

menubar=tk.Menu(root)

File=tk.Menu(menubar,tearoff=0)
File.add_command(label='new')
File.add_command(label='open')
File.add_command(label='save')
File.add_command(label='save as...')
File.add_separator()
File.add_command(label='exit',command=root.quit)
menubar.add_cascade(label='File',menu=File)

Edit=tk.Menu(menubar,tearoff=0)
Edit.add_command(label='cut')
Edit.add_command(label='copy')
Edit.add_command(label='paste')
menubar.add_cascade(label='Edit',menu=Edit)

Help=tk.Menu(menubar)
Help.add_command(label='About')
menubar.add_cascade(label='Help',menu=Help)

root.config(menu=menubar)
root.mainloop()

执行结果如下

在这里插入图片描述

Frame

python tkinter框架小部件用于组织小部件组。它就像一个容器,可以用来存放其他小部件。屏幕的矩形区域用于将小部件组织到Python应用程序。
下面给出了使用框架小部件的语法。
w=Frame(parent,options)

选项说明
bd边框宽度
bg部件背景色
cursor当鼠标移动到小部件上时的形状,比如arrow,dot
height框架的高
width框架的宽
highlightbackground处于焦点下的背景色
highlightcolor处于焦点下时文字的颜色
relief边框类型,默认是FLAT

下面给出一个小例子

from tkinter import *

top = Tk()
top.geometry("140x100")
frame = Frame(top)
frame.pack()

leftframe = Frame(top)
leftframe.pack(side=LEFT)

rightframe = Frame(top)
rightframe.pack(side=RIGHT)

btn1 = Button(frame, text="Submit", fg="red", activebackground="red")
btn1.pack(side=LEFT)

btn2 = Button(frame, text="Remove", fg="brown", activebackground="brown")
btn2.pack(side=RIGHT)

btn3 = Button(rightframe, text="Add", fg="blue", activebackground="blue")
btn3.pack(side=LEFT)

btn4 = Button(leftframe, text="Modify", fg="black", activebackground="white")
btn4.pack(side=RIGHT)

top.mainloop()  

运行结果

在这里插入图片描述

Message

消息小部件用于向用户显示有关Python应用程序行为的消息。消息小部件向用户显示无法编辑的文本消息。消息文本包含多行。但是,消息只能以单个字体显示。
下面给出了使用消息小部件的语法。
w=Message(parent,options)

选项说明
anchor如果小部件包含的空间超过了文本的需要,它用于决定文本在提供给小部件的空间内的确切位置。默认值为“CENTER”。
bg背景色
bd边框的大小,默认是2pixel
cursor光标移动到部件内时的形状,比如arrow,dot
font字体类型
fg文本颜色
height小部件的高度
width小部件的宽度
image我们可以将该选项设置为静态图像,以便在小部件上显示该选项。
justify此选项用于指定多行代码之间的对齐方式。可能的值可以是LEFT(左对齐)、CENTER(居中,默认)和RIGHT(右对齐)
padx水平填充
pady垂直填充
relief边框类型,默认是FLAT
text需要显示的文本
textvariable显示可变文本内容
underline此选项的默认值为-1,表示没有下划线。我们可以将此选项设置为现有的数字,以指定字符串的第n个字母将加下划线。
wraplength我们可以将文本换行到行数,方法是将此选项设置为所需的数字,以便每行只包含该数量的字符。

Message 比较简单,容易掌握,这里就不给出示例了。

Checkbutton

Checkbutton用于跟踪提供给应用程序的用户选择。换句话说,我们可以说Checkbutton用于实现on/off选择。Checkbutton可以包含文本或图像。Checkbutton主要用于为用户提供多种选择,用户需要从中选择一个。它通常实现许多选择中的许多选择。

下面给出checkbutton的语法。
w=checkbutton(root,options)

选项说明
activebackground当复选框处于光标下方时它的背景色。
activeforeground当复选框处于光标下方时它的前景色
bg按钮背景色
bitmap在按钮上显示一个图像
bd边角的大小
command它与一个函数相关联,当复选框状态发生改变时调用该函数
cursor当鼠标指针位于复选按钮上方时,它将被更改为光标名称。
disableforeground表示禁用复选框的颜色
font复选框的字体
fg字体颜色
height复选框的高度,用行数表示,默认是1
highlightcolor当复选框处于对焦状态时焦点突出的颜色
image按钮图像
justify文本包含多行时的对其方式
offvalue如果未选中按钮,关联的控制变量默认设置为0。我们可以将未检查变量的状态更改为其他变量。
onvalue如果选中按钮,关联的控制变量默认设置为1。我们可以将已检查变量的状态更改为其他变量。
padx水平填充
pady垂直填充
relief边框类型,默认情况下是FALT
selectcolor设置复选按钮时的颜色。默认情况下,它是红色的。
selectimage被设置时显示的图片
state复选框的状态,默认时normal,我们可以改为禁用使复选框没有响应
variable跟踪复选框状态 相关联变量
widthcheckbutton的宽度
wraplength将此选项设置为整数,表示每行包含的字数

checkbutton 包含如下几个方法

方法说明
deselect()调用此函数关闭checkbutton
flash()复选框在活动颜色和正常颜色之间闪烁
invoke()调用与checkbutton关联的函数
select()调用此函数打开复选框
toggle()用于在不同复选框之间切换

下面给出一个checkbutton的小示例

import tkinter as tk

root=tk.Tk()
root.geometry('200x200')

var1=tk.IntVar()
var2=tk.IntVar()
varstr=tk.StringVar()

def descri():
    if(var1.get()==1 and var2.get()==0):
        varstr.set('C/C++ is a basic language')
    elif(var1.get()==0 and var2.get()==1):
        varstr.set("Python is a easy language")
    elif(var1.get()==0 and var2.get()==0):
        varstr.set('')
    else:
        varstr.set('good good study,day day up')

cbk1=tk.Checkbutton(root,text='C/C++',variable=var1,command=descri,offvalue=0,height=1,width=10)
cbk2=tk.Checkbutton(root,text='Python',variable=var2,command=descri,offvalue=0,height=1,width=10)


label=tk.Label(root,textvariable=varstr)

cbk1.pack()
cbk2.pack()
label.pack()

root.mainloop()

显示效果如下图

在这里插入图片描述在这里插入图片描述

Scale

Scale小部件用于实现python应用程序的图形滑块,以便用户可以在滑块上显示的值范围内滑动并从中选择一个。
我们可以根据比例尺的分辨率控制最小值和最大值。当用户被迫从给定的值范围中只选择一个值时,它为Entry小部件提供了一种替代方法。
下面给出了使用Scale小部件的语法。
w=Scale(root,options)

选项说明
activebackground小部件具有焦点时的背景颜色
bg小部件背景颜色
bd小部件边框大小,默认是2pixel
command它被设置为每次移动滑块时调用的过程。如果滑块快速移动,则在它稳定时执行回调。
cursor将鼠标指针更改为分配给此选项的光标类型。它可以是箭头、圆点等。
digits如果用于控制比例数据的控制变量为字符串类型,则此选项用于指定将数值比例转换为字符串时的数字数量。
font文本字体
fg文本颜色
from_小部件范围的一端
highlightbackground小部件没有焦点时突出显示的颜色
highlightcolor小部件有焦点时突出显示的颜色
label这可以设置为一些文本,这些文本可以显示为带有刻度的标签。如果比例尺是水平的,则显示在左上角;如果比例尺是垂直的,则显示在右上角。
length它表示小部件的长度。如果刻度是水平的,则表示X维度;如果刻度是垂直的,则表示y维度。
orient它可以被设置为水平的或者时垂直的取决于小部件的类型
relief边框的类型,默认是FLAT
repeatdelay这个选项告诉按钮在滑块开始向那个方向重复移动之前被按下的持续时间。
showvalue默认情况下,scale的值以文本形式显示。我们可以将此选项设置为0以禁用标签。
sliderlength它表示滑块窗口沿标尺长度的长度。默认为30像素。但是,我们可以将其更改为适当的值。
state默认情况下,滑块是活动的,我们可以设置为DISABLED禁用滑块
to它表示一个浮点数或整数值,该整数值指定由刻度表示的范围的另一端。
troughcolor通过的颜色
variable滑块的控制变量
width小部件的宽度

***scale***带有两个控制方法

方法说明
get()用来获取scale部件当前的值
set(value)用来设置部件的值

下面给出一个***scale***部件的示例

import tkinter as tk

root=tk.Tk()

def show():
    label.config(text='score is '+str(scale.get()))

var=tk.DoubleVar()
label=tk.Label(root)
scale=tk.Scale(root,from_=0,to=150,variable=var,orient=tk.HORIZONTAL)
scale.pack()

button=tk.Button(root,text='score',command=show)
button.pack()

label.pack()
root.mainloop()

显示效果如下图

在这里插入图片描述

Topelevel

oplevel小部件用于创建和显示由窗口管理器直接管理的Toplevel窗口。toplevel小部件的顶部可能有父窗口,也可能没有。
当python应用程序需要在新窗口上表示一些额外的信息、弹出窗口或一组小部件时,可以使用toplevel小部件。
顶层窗口具有标题栏、边框和其他窗口装饰。
下面给出了使用Toplevel小部件的语法。

w=Toplevel(options)

选项说明
bg窗口背景色
bd窗口边框大小
cursor鼠标移动到窗口内时将变成的类型,可以为arrow,dot等
class_文本小部件中选择的文本将被导出到窗口管理器中。我们可以把这个设为0,使这个行为为假。
font窗口小部件字体类型
fg窗口前景色
height窗口高度
width窗口宽度
relief窗口类型

Toplevel 带有许多方法,下面做简要介绍

方法说明
title(string)用于定义窗口标题
sizefrom(who)用于定义窗口size控制器
resizable(width,height用于控制窗口是否可以调整大小
deiconify()这个方法用于显示窗口
frame()用于显示窗口相关的窗口标识符
group(window)用于将窗口添加到特定的窗口组群中
state()用于获取窗口的当前状态,可能为normal,iconic,withdrawn,icon
withdraw()用于删除窗口,但不销毁它
maxsize(width,height)声明窗口的最大大小
minsize(width,height)声明窗口的最小大小

下面给出一个例子

from tkinter import *

root = Tk()

root.geometry("200x200")


def open():
    top = Toplevel(root)
    top.title('new window')
    top.minsize(100,100)
    label=Label(top,text="welcome to the new window")
    label.pack()
    top.mainloop()


btn = Button(root, text="open", command=open)

btn.place(x=75, y=50)

root.mainloop()  

在这里插入图片描述

在这里插入图片描述
下面介绍控件的三种放置方式pack(),place()和grid()。

pack()

如果窗口内组件较少时,使用pack进行布局非常方便。下面介绍pack()方法的参数选项。

选项说明
side组件的添加位置,可以为TOP,BOTTOM,LEFT,RIGHT
fill组件是否进行填充,,有X,Y,NONE,BOTH四中选择
anchor比side更精准的控制组件的位置,有N,S,W,N代表上下左右,NW,NE,SW,SE代表左上,右上,左下,右下,CENTER代表中。
expand是否随父容器进行伸缩变换
padx水平方向外间距
pady垂直方向外间距
ipadx水平方向内间距
ipady垂直方向内间距

当组件数量较多时,配合Frame使用界面比较理想,但这样比较麻烦,不建议使用,更多关于pack() 的用法和示例请点击这里

grid()

顾名思义,窗口被分割成一个个的小方格,每一个方格可以放置一个组件。下面介绍其控制选项。

选项说明
row组件放置的行号,从0开始
column组件放置的列号,从0开始
rowspan通过设置这个选项的值可以合并相邻的行
columnspan通过设置这个选项可以合并相邻的列
in_登记子插件,比如用in_=b1,可以将本组件登记为b1的子插件
padx水平方向外间距
pady垂直方向外间距
ipadx水平方向内间距
ipady垂直方向内间距
sticky用来分配单元中多余的空间。

sticky的具体用法见下面
在这里插入图片描述
还有一些与grid()类似的函数,下面也做简要介绍

函数说明
grid_configure(**options)用法和grid()一样
grid_forget()将组件从屏幕中删除,但并没有销毁
grid_info()以字典形式返回当前grid()选项
grid_location(x,y)返回位于(或接近)给定坐标(x, y)的网格位置 --返回值是一个 2 元组表示网格对应的(列, 行)
grid_remove()移除组件
grid_propagate(flag)如果开启,父组件会自动调节尺寸以容纳所有子组件 --默认值是开启(flag=True) --该方法仅适用于父组件

注意:不要在同一个窗口中同时使用pack()和grid()。
更多关于grid()的用法和示例请看这里。

place()

窗口可以看做一个二维的平面,通过坐标定位可以很精确的定位每个点的位置,因此也就可以精确的放置组件到我们想要的位置。x,y的坐标如下图定位
在这里插入图片描述
下面介绍一下其控制选项及参数。

选项说明
x指定组件的x坐标
y指定组件的y坐标
relx指定组件相对于父容器的x坐标,取值范围是0.0~1.0
rely指定组件相对于父容器的y坐标,取值范围是0.0~1.0
relheight指定组件相对于父容器的高度,取值范围是0.0~1.0
relwidth指定组件相对于父容器的宽度,取值范围是0.0~1.0
width组件的宽度,单位时pixel
height组件的高度,单位时pixel
bordermode该属性支持“inside”或“outside” 属性值,用于指定当设置组件的宽度、高度时是否计算该组件的边框宽度。

tkinter的更多相关知识可以参考这个网站,讲解比较详细,缺点是全英文,我这边文章的多数内容也都是来自这个网站。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值