赞
踩
目录
2.1 text,font,bg,fg,width,height
2.2 command,padx,pady,bd,anchor
2.3 image,relief,bitmap,compound,cursor
2.4 justify,state,wraplength,underline
6.1 tearoff,activebackground,activeforeground
6.3 方法展示:insert_separator(index)
7.1 方法展示:create_line(),create_restangle(),create_oval(),create_text(),create_image()
7.2 方法展示:delete(),move(),itemconfig()
本文致力与帮助想要需要Tkinter的小伙伴,内容详细简介明了不臃肿,会详细的介绍Tkinter的常用操作以及核心组件和它们的重要参数。想要学习的小伙伴一定要认真观看喔~
tk为python只带的标准库,不需要下载,直接导入。
from tkinter import *
'运行
label | 标签 | 用来显示文字或图片 |
---|---|---|
Button | 按钮 | 类似标签,但提供额外的功能,例如鼠标掠过、按下、释放以及键盘操作、事件 |
Entry | 单行文字域 | 用来收集键盘输入 |
Text | 多行文字区域 | 可用来收集(或显示)用户输入的文字 |
Frame | 框架 | 包含其他组件的纯容器 |
Checkbutton | 选择按钮 | 一组方框,可以选择其中的任意个 |
Listbox | 列表框 | 一个选项列表,用户可以从中选择 |
Menu | 菜单 | 点下菜单按钮后弹出的一个选项列表,用户可以从中选择 |
Menubutton | 菜单按钮 | 用来包含菜单的组件(有下拉式、层叠式等等) |
Message | 消息框 | 类似于标签,但可以显示多行文本 |
Radiobutton | 单选按钮 | 组按钮,其中只有一个可被“按下” (类似 HTML 中的 radio) |
Scale | 进度条 | 线性“滑块”组件,可设定起始值和结束值,会显示当前位置的精确值 |
Scrollbar | 滚动条 | 对其支持的组件(文本域、画布、列表框、文本框)提供滚动功能 |
Toplevel | 顶级 | 类似框架,但提供一个独立的窗口容器 |
Canvas | 绘画 | 提供绘图功能(直线、椭圆、多边形、矩形) 可以包含图形或位图 |
from tkinter import *
'运行
root = Tk()
- # 指定了窗口的宽度、高度和位置。
- root.geometry('600x450+400+200')
- # 宽度为600像素
- # 高度为450像素
- # 位置在屏幕上的坐标为(x=400, y=200)
- # 主窗口的框体的标题
- root.title('title')
root.mainloop() # 显示主窗口
- from tkinter import *
-
- root = Tk()
- root.geometry('400x300+400+200')
- root.title('title')
-
- """
- 此处写tk框架组件
- """
- root.mainloop()
参数 | 注释 |
---|---|
text | 标签名称 |
font | 字体(样式,大小) |
bg (background) | 背景颜色(标签颜色) |
fg (foreground) | 前景颜色(字体颜色) |
width | 标签宽度 |
height | 标签高度 |
anchor | 锚选项,控制标签文本的位置(参数值:S,W,E,N,SE,SW,NW,NE,CENTER,默认为CENTER) |
bitmap | 位图 |
relief | 三维效果(参数值:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT) |
image | 与PhotoImage 一起使用,图片只能为gif图片 |
compound | 图片和文字一同显示 |
padx | 设置文本与标签边框x轴方向上距离 |
pady | 设置文本与标签边框y轴方向上的距离 |
cursor | 鼠标移动到框架时,光标的形状(参数值:arrow, circle, cross, plus 等) |
justify | 显示多行文本的时候,设置不同行之间的对齐方式(参数值:LEFT, RIGHT, CENTER) |
state | 设置标签状态,参数值:NORMAL、ACTIVE、 DISABLED。默认 NORMAL |
wraplength | 指定每行文本的宽度,单位是屏幕单元 |
underline | 下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,第二个字符带下划线,以此类推 |
- from tkinter import *
-
- root = Tk()
- root.geometry('400x300+400+200')
- root.title('title')
- # ------
- label1 = Label(root, text='测试1', bg='purple', font=('华文行楷', 20), fg='blue')
- label1.grid(row=1, column=1)
- # ------
- root.mainloop()
其中 grid(row=1,column=1) 代表着当前标签位置于 第一行第一列
text为标签名“测试1”
bg为底色“purple”紫色
font为字体“华文行楷”以及字体大小“20”
fg为字体颜色“bule”蓝色
- from tkinter import *
-
- root = Tk()
- root.geometry('400x300+400+200')
- root.title('title')
- # ------
- label2 = Label(root, text='测试2', bg='purple', font=('华文行楷', 20), fg='blue', width=8, height=3, anchor=E, padx=20)
- label2.grid(row=2, column=1)
- # ------
- root.mainloop()
其中 grid(row=2,column=1) 代表着当前标签位置于 第二行 第一列。而因为前面没有内容行,因此标签显示在第一行。
width为宽度“8”
height为高度"3"
anchor=E为文本在标签中的位置
padx=20为文本与标签边框x轴方向上距离20
- from tkinter import *
-
- root = Tk()
- root.geometry('400x300+400+200')
- root.title('title')
- # ------
-
- preview = PhotoImage(file=r'Aa_图片素材库/preview.gif')
- label3 = Label(root, text='图片', image=preview, compound='left', relief=SUNKEN)
- label3.grid(row=2, column=2)
- # ------
- root.mainloop()
PhotoImage(file="....")中的file为gif图片文件位置
image与PhotoImage 一起使用,为标签显示当前图片,且图片只能为gif图片
compound为表示图片和文字一同显示,left表示图片显示在标签左边
relief为三维效果,且SUNKEN为显示方式
- from tkinter import *
-
- root = Tk()
- root.geometry('400x300+400+200')
- root.title('title')
- # ------
- label4 = Label(root, bitmap='error', bd=3, relief=SUNKEN)
- label4.grid(row=2, column=4)
- label5 = Label(root, relief=SUNKEN, text='bitmap位图测试')
- label5.grid(row=2, column=3)
- # ------
- root.mainloop()
bd为
指定标签部件的边框宽度,这里设置为3像素
bitmap
用于指定在标签部件中显示的位图。'error'表示显示一个带有问题图标的位图。它们有如下'error'、'info'、'question'等,分别代表错误、信息和问题图标。也可以自定义的位图文件。
参数 | 注释 |
---|---|
text | 按钮文本内容 |
font | 字体(样式,大小) |
bg | 背景颜色(按钮颜色) |
fg | 前景颜色(字体颜色) |
width | 按钮宽度 |
height | 按钮高度 |
command | 按钮关联的函数,当按钮被点击时,执行该函数 |
padx | 设置按钮文本与按钮边框x轴方向的距离 |
pady | 设置按钮文本与按钮边框y轴方向的距离 |
bd | 按钮边框宽度 |
anchor | 控制按钮文本的位置(参数值:S,W,E,N,SE,SW,NW,NE,CENTER,默认为CENTER) |
image | 与PhotoImage 一起使用,图片只能为gif格式 |
relief | 三维效果 (参数值:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT) |
bitmap | 位图 |
compound | 图片和文字一同显示 |
cursor | 鼠标移动到框架时,光标的形状(参数值:arrow, circle, cross, plus 等) |
justify | 显示多行文本的时候,设置不同行之间的对齐方式(参数值:LEFT, RIGHT, CENTER) |
state | 设置按钮状态,参数值:NORMAL、ACTIVE、 DISABLED。默认 NORMAL |
wraplength | 指定每行文本的宽度,单位是屏幕单元 |
underline | 下划线。默认按钮上的文本都不带下划线。取值就是带下划线的字符串索引,为 0 时,第一个字符带下划线,为 1 时,第二个字符带下划线,以此类推 |
- from tkinter import *
-
- root = Tk()
- root.geometry('400x300+400+200')
- root.title('title')
-
- button1 = Button(root, text='测试1', bg='purple', font=('华文行楷', 20), fg='blue', width=8, height=2)
- button1.grid(row=2, column=1)
-
- root.mainloop()
这些属性功能基本与标签属性类型,分别为按钮名,文字样式,底色,按钮文字颜色,宽和高。
- from tkinter import *
- from tkinter import messagebox
-
- root = Tk()
- root.geometry('400x300+400+200')
-
-
- def test():
- messagebox.showinfo('提示', '已点击 测试1 按钮')
-
-
- button1 = Button(root, text='测试1', height=3, width=8, padx=20, pady=30, command=test, bd=2, anchor=E)
- button1.grid(row=1, column=1)
-
- root.mainloop()
"command=test" 意思是当点击此按钮时触发函数test,其中test函数意义为显示出一个弹窗。是tk中重要的按钮属性
padx为按钮内文字与按钮边框x轴的距离
pady为按钮内文字与按钮边框y轴的距离
bd为按钮边框宽度
"anchor=E"表示按钮上的文本将沿着按钮的右侧对齐,其中默认为CENTER居中
- from tkinter import *
-
- root = Tk()
- root.geometry('400x300+400+200')
-
- button1 = Button(root, text='测试', cursor='cross', relief=SUNKEN, bitmap='question',)
- button1.grid(row=1, column=2)
-
- picture = PhotoImage(file=r'Aa_图片素材库/3f12a.gif')
- button2 = Button(root, text='图片', width=100, height=100, image=picture, compound='left')
- button2.grid(row=2, column=2)
-
- root.mainloop()
image是为将按钮的样子变为当前gif动态图
relief将当前按钮以三维效果显示,此代码意思是将问号按钮沉没显示,默认为平。
bitmap设置按钮的位图。位图是一种小的图像,通常用于表示简单的图标或符号。将位图文件的路径传递给bitmap
参数。或使用tk自带的位图。
cursor则表示鼠标放当前按钮上时显示样式
- from tkinter import *
-
- root = Tk()
- root.geometry('400x300+400+200')
-
- button1 = Button(root, text='测试多行文字展示多行文字展示', underline=0, state=NORMAL, justify=RIGHT, wraplength=60, height=3, width=10)
- button1.grid(row=1, column=1)
-
- root.mainloop()
justify=RIGHT:让多行文字靠右显示
state=NORMAL:按钮状态,NORMAL为正常状态也是默认状态:
warplength=60:表示么行文本宽度为100(单位屏幕单元)
underlinr=0:表示按钮第一个文字带下划线
参数 | 注释 |
---|---|
bg | 背景色 |
fg | 底色 |
font | 字体(样式,大小) |
width | 文本框宽度 |
bd | 文本框框宽 |
show | 输入显示方式 |
textvariable | 将一个StringVar 对象与Entry 小部件关联起来,以便在用户输入文本时实时更新 |
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
-
- # 创建一个StringVar对象
- text_var = StringVar()
-
- # 将StringVar对象与Entry小部件关联
- entry = Entry(root, textvariable=text_var, width=30, show="*")
- entry.pack()
-
-
- def get_text():
- text = text_var.get()
- print("用户输入的文本是:", text)
-
-
- button = Button(root, text="获取文本", command=get_text)
- button.pack()
-
- root.mainloop()
show=“*” :将文本框显示的内容以‘*’显示
textvariable:关联,方便使用
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
-
- entry = Entry(root)
- entry.pack()
-
- def get_text():
- text = entry.get()
- print("Entry中的文本是:", text)
-
- button = Button(root, text="获取文本", command=get_text)
- button.pack()
-
- root.mainloop()
gntry.get():获取entry输入的文本内容并返回
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
-
- entry = Entry(root)
- entry.pack()
-
-
- def insert_text():
- entry.insert(0, "Hello, World!")
-
-
- button = Button(root, text="插入文本", command=insert_text)
- button.pack()
-
- root.mainloop()
entry.insert() :表示从文本起始位置插入文本到文本域中
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
-
- entry = Entry(root)
- entry.pack()
-
-
- def delete_text():
- entry.delete(0, END)
-
-
- button = Button(root, text="删除文本", command=delete_text)
- button.pack()
-
- root.mainloop()
entry.delete(0, END) : 从开头到末尾的所有文本内容。这个方法调用会清空Entry
小部件中的所有文本内容,使其变为空白状态。
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
-
- entry = Entry(root)
- entry.pack()
-
-
- def configure_entry():
- entry.config(bg="yellow", fg="blue", font=("Arial", 12))
-
-
- button = Button(root, text="配置Entry", command=configure_entry)
- button.pack()
-
- root.mainloop()
entry.config() : 改变文本框部件的属性
参数 | 注释 |
---|---|
bg | 背景色 |
fg | 底色 |
font | 字体(样式,大小) |
width | 文本框宽度 |
bd | 边框宽度 |
height | 文本框高度 |
wrap | 文本换行方式,可选WORD( 按单词换行)或CHAR( 按字符换行) |
state | 状态,可选值为NORMAL (可编辑)或DISABLED (不可编辑) |
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
-
- text1 = Text(root, fg='white', bg='#393b40', font=('宋体', '15'), width=15, height=4, bd=3, wrap=CHAR)
- text1.grid(row=1, column=1)
- text2 = Text(root, fg='white', bg='#393b40', font=('宋体', '15'), width=15, height=4, bd=3, state=DISABLED)
- text2.grid(row=2, column=2)
- root.mainloop()
-
-
warp=CHAR : 按字符换行。无论单词的位置如何,文本都会在字符之间自动换行,以确保整个字符不会被截断。而WORD为单词换行。当文本长度超过文本域的宽时,文本在单词间自动换行
state: 状态,可选值为NORMAL
(可编辑)或DISABLED
(不可编辑)。
参数 | 注释 |
---|---|
bg | 背景颜色 |
width | 宽度 |
height | 高度 |
relief | 三维效果 (参数值:FLAT、SUNKEN、RAISED、GROOVE、RIDGE。默认为 FLAT) |
bd | 边框宽度 |
padx | 水平方向内边距 |
pady | 垂直方向内边距 |
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
-
- frame = Frame(root, height=3, width=10, bd=5, relief='sunken')
- frame.pack()
- button = Button(frame, text='测试', bd=2)
- button.pack()
- text1 = Text(frame, fg='white', bg='#393b40', height=4, width=14, bd=3)
- text1.pack()
-
- root.mainloop()
Frame():
用于将其他小部件组织在一起并进行布局管理。 方便一些组件的统一管理调整。
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
-
- frame = Frame(root)
- frame.pack()
-
- label = Label(frame, text="标签内容.......")
- label.pack()
-
-
- def destroy_frame():
- frame.destroy()
-
-
- destroy_button = Button(root, text="销毁frame框架", command=destroy_frame)
- destroy_button.pack()
-
- root.mainloop()
destroy()
方法用于销毁定义好的Frame
框架及其所有子部件。可以在Tkinter应用程序中动态地添加或移除框架及其子部件。
参数 | 注释 |
---|---|
bg | 前景颜色 |
fg | 背景颜色 |
font | 字体(样式,大小) |
width | 宽度 |
height | 高度 |
bd | 边框宽度 |
tearoff | 是否显示菜单的撕开标志,可选值为 0(不显示)和 1(显示) |
activebackground | 菜单项被激活时的背景颜色 |
activeforeground | 菜单项被激活时的前景颜色。 |
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
- menubar = Menu(root)
-
- filemenu = Menu(menubar, tearoff=0, bg='#2a2d30', fg='#bbbbbb')
-
- menubar.add_cascade(label='文件', menu=filemenu) # 添加一个级联菜单,label为显示的文本,menu为级联的子菜单
- filemenu.add_command(label='打开', activebackground='red', activeforeground='#323233')
- filemenu.add_separator() # 添加一个分隔线。
- filemenu.add_command(label='保存') # 添加一个普通菜单项
-
- root.config(menu=menubar)
- root.mainloop()
Menu()
是用于创建菜单的小部件。
tearoff=0 :不显示菜单撕开标志
activebackground=‘red’ :当鼠标放上面时,背景颜色变红色
activeforeground='#323233' :当鼠标放上面时,字体颜色变黑色
.add_cascade()lebal, menu, **options) :添加一个级联菜单,label
为显示的文本,menu
为级联的子菜单。
.add_command(label, command, **options) :添加一个普通菜单项,label
为显示的文本,command
为点击后执行的函数。
.add_separator() :添加一个分隔线。
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
- menubar = Menu(root)
-
-
- def hello():
- print("Hello World!")
-
-
- menu = Menu(root)
- root.config(menu=menu)
-
- file_menu = Menu(menu)
- menu.add_cascade(label="文件", menu=file_menu)
- file_menu.add_command(label="保存", command=hello)
- file_menu.add_command(label="打开", command=hello)
-
- # 删除第二个菜单项(索引从0开始)
- file_menu.delete(1)
-
- root.mainloop()
delete(index):方法删除菜单中指定索引位置的菜单项
delete(1) :方法删除了第二个菜单项(索引为1)。删除了"保存"菜单项。
command=hello :点击触发hello()函数操作
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
-
- menu = Menu(root)
- root.config(menu=menu)
-
- file_menu = Menu(menu)
- menu.add_cascade(label="文件", menu=file_menu)
- file_menu.add_command(label="打开")
- file_menu.add_command(label="保存")
-
- # 在第二个菜单项后插入一个分隔线
- file_menu.insert_separator(2)
-
- file_menu.add_command(label="关闭")
-
- root.mainloop()
insert_separator(index)
方法用于在菜单中的指定索引位置插入一个分隔线
参数 | 注释 |
---|---|
bg | Canvas的背景颜色 |
width | Canvas的宽度 |
height | Canvas的高度 |
方法 | 注释 |
---|---|
create_line(x1, y1, x2, y2, options) | 在Canvas上创建一条直线。 |
create_rectangle(x1, y1, x2, y2, options) | 在Canvas上创建一个矩形。 |
create_oval(x1, y1, x2, y2, options) | 在Canvas上创建一个椭圆。 |
create_text(x, y, text, options) | 在Canvas上创建文本。 |
create_image(x, y, image, options) | 在Canvas上创建图像。 |
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
-
- canvas = Canvas(root, bg="#f2e0dc", width=400, height=400)
- canvas.pack()
-
- # 创建一条直线
- line = canvas.create_line(160, 50, 50, 40, fill="#23407b")
-
- # 创建一个矩形
- rectangle = canvas.create_rectangle(80, 100, 250, 200, fill="#aa4926")
-
- # 创建一个椭圆
- oval = canvas.create_oval(50, 250, 150, 350, fill="#578933")
-
- # 创建文本
- text = canvas.create_text(200, 280, text="Hello World!", fill="#813f09")
-
- # 创建图像
- image = PhotoImage(file="./Aa_图片素材库/PNG50534.png")
- image = image.subsample(4) # 缩小为原来的1/4
-
- canvas.create_image(340, 300, image=image)
-
- root.mainloop()
方法 | 注释 |
---|---|
delete(item) | 删除Canvas上的指定项 |
move(item,dx,dy) | 移动Canvas上的指定项 |
itemconfig(item,**options) | 配置Canvas上的指定项 |
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
-
- canvas = Canvas(root, bg="#f2e0dc", width=400, height=400)
- canvas.pack()
-
- # 创建一个矩形
- rectangle = canvas.create_rectangle(50, 30, 220, 150, fill="#aa4926")
- # 创建文本
- text = canvas.create_text(140, 200, text="Hello World!", fill="#813f09")
-
- # 修改矩形的属性
- canvas.itemconfig(rectangle, fill="red", outline="black", width=2)
- # 移动图形
- canvas.move(rectangle, 50, 50)
- # 删除文本
- canvas.delete(text)
-
- root.mainloop()
.itemconfig(...) :将底色改为red,边框颜色改为black,宽度为2
.move(...) :将图形移动到 50,50 位置
.delete(...) :将text文字删除
方法 | 注释 |
---|---|
messagebox.showinfo() | 显示一个信息框 |
messagebox.showwarning() | 显示一个警告框 |
messagebox.showerror() | 显示一个错误框 |
messagebox.askquestion() | 显示一个询问框 |
- from tkinter import *
- from tkinter import messagebox
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
-
- # 显示信息框
- messagebox.showinfo("信息框", "这是一个信息框")
-
- # 显示警告框
- messagebox.showwarning("警告框", "这是一个警告框")
-
- # 显示错误框
- messagebox.showerror("错误框", "这是一个错误框")
-
- # 显示询问框
- response = messagebox.askquestion("询问框", "是否要继续?")
- if response == 'yes':
- print("用户想要继续。")
- else:
- print("用户不想继续。")
-
- root.mainloop()
messagebox
是Tkinter库中用于显示消息框的模块,可以方便地创建各种类型的消息框,如提示框、警告框、错误框等
messagebox.showinfo(title, message)
:显示一个信息框,包含指定的标题和消息。messagebox.showwarning(title, message)
:显示一个警告框,包含指定的标题和消息。messagebox.showerror(title, message)
:显示一个错误框,包含指定的标题和消息。messagebox.askquestion(title, message)
:显示一个包含是/否按钮的对话框,并返回用户的选择。在Tkinter中,布局是指如何在窗口中安排和组织各个部件(如按钮、标签、文本框等)以及它们之间的空间关系。Tkinter提供了几种布局管理器来帮助您实现不同的布局效果,其中最常用的是pack
、grid
和place
布局管理器。
Pack
布局管理器是Tkinter中最简单的布局管理器,它按照添加部件的顺序自动排列部件。您可以使用pack()
方法将部件添加到窗口,并可以通过指定side
参数来控制部件的排列方向(TOP
、BOTTOM
、LEFT
、RIGHT
)。
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
-
- btn1 = Button(root, text="按钮 1")
- btn2 = Button(root, text="按钮 2")
-
- btn1.pack(side="top")
- btn2.pack(side="left")
-
- root.mainloop()
pack布局如果不设置参数,它将按照添加部件的顺序自动排序
Grid
布局管理器允许您将部件放置在一个二维表格中,通过指定row
和column
参数来控制部件的位置。您还可以使用sticky
参数来指定部件在单元格中的对齐方式。
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
-
- btn1 = Button(root, text="Button 1")
- btn2 = Button(root, text="Button 2")
- btn3 = Button(root, text="Button 3")
-
- btn1.grid(row=0, column=0, sticky="nsew")
- btn2.grid(row=1, column=0, sticky="nsew")
- btn3.grid(row=2, column=1, sticky="nsew")
- # 注: 对其方式有N:上对齐(北), S:下对齐(南), E:右对齐(东), W:左对齐(西), NW:左上对齐(西北), NE:右上对齐(东北), SW:左下对齐(西南), SE:右下对齐(东南)
- # 如果您想要部件在单元格中居中对齐,可以使用sticky="NSEW"
- root.mainloop()
sticky可以不设置参数
# 注: 对其方式有N:上对齐(北), S:下对齐(南), E:右对齐(东), W:左对齐(西), NW:左上对齐(西北), NE:右上对齐(东北), SW:左下对齐(西南), SE:右下对齐(东南) # 如果您想要部件在单元格中居中对齐,可以使用sticky="NSEW"
Place
布局管理器允许您精确地指定部件的位置和大小。通过指定x
、y
坐标和width
、height
参数,您可以将部件放置在窗口的指定位置。
- from tkinter import *
-
- root = Tk()
- root.geometry('500x500+400+200')
- root.title('胖兔always')
-
- btn1 = Button(root, text="Button 1")
- btn2 = Button(root, text="Button 2")
-
- btn1.place(x=10, y=10)
- btn2.place(x=50, y=50)
-
- root.mainloop()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。