Python图形用户界面(GUI)- tkinter
off999 2024-12-08 17:31 23 浏览 0 评论
Python提供了多种开发GUI(图形用户界面)的选项。在所有GUI方法中,tkinter是最常用的方法。它是Python随附的Tk GUI工具包的标准Python接口。带有tkinter的Python是创建GUI应用程序的最快,最简单的方法。使用tkinter创建GUI很容易。
要创建tkinter应用程序:
1)导入模块tkinter
2)创建主窗口(容器)
3)将任意数量的小部件添加到主窗口
4)将事件触发器应用于小部件。
导入tkinter与导入Python代码中的任何其他模块相同。请注意,在Python 2.x中,模块的名称为“ Tkinter”,而在Python 3.x中,模块的名称为“ tkinter”。
import tkinter用户使用GUI创建Python应用程序时需要记住两种主要方法。
1)Tk(screenName=None, baseName=None, className=’Tk’, useTk=1):为了创建一个主窗口,tkinter提供了一种方法‘Tk(screenName=None, baseName=None, className=’Tk’, useTk=1)’。要更改窗口的名称,可以将className更改为所需的名称。用于创建应用程序主窗口的基本代码为:
m=tkinter.Tk() where m is the name of the main window object2)mainloop():当应用程序准备运行时,会使用一个名为mainloop()的方法。mainloop()是一个无限循环,用于运行应用程序,等待事件发生,并在窗口未关闭的情况下处理事件。
m.mainloop()import tkinter
m = tkinter.Tk()
'''
widgets are added here
'''
m.mainloop() tkinter还提供了对小部件几何配置的访问,可以在父窗口中组织小部件。主要有三个几何管理类。
1)pack()方法:在将其放置在父窗口小部件之前,将它们按块组织起来。
2)grid()方法:在放入父窗口小部件之前,它将窗口小部件组织在网格中(类似于表的结构)。
3)place()方法:它通过将小部件放置在程序员指定的位置来组织它们。
您可以在tkinter应用程序中放入许多小部件。以下是一些主要小部件的说明:
1.Button:要在您的应用程序中添加按钮,请使用此小部件。
通用语法为:
w=Button(master, option=value)master是用于表示父窗口的参数。
有许多选项可用于更改按钮的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- activebackground:设置按钮在光标下的背景色。
- activeforeground:设置按钮在光标下的前景色。
- bg:设置正常的背景色。
- command:调用一个函数。
- font:设置按钮标签上的字体。
- image:设置按钮上的图像。
- width:设置按钮的宽度。
- height:设置按钮的高度。
import tkinter as tk
r = tk.Tk()
r.title('Counting Seconds')
button = tk.Button(r, text='Stop', width=25, command=r.destroy)
button.pack()
r.mainloop() 输出:
2.画布(Canvas):用于绘制图片和其他复杂的布局,例如图形,文本和小部件。
通用语法为:
w = Canvas(master, option=value)
master is the parameter used to represent the parent window.有许多选项用于更改小部件的格式。选项的数目可以通过逗号分隔的参数传递。其中一些列在下面。
- bd:以像素为单位设置边框宽度。
- bg:设置正常的背景色。
- cursor:设置画布中使用的光标。
- highlightcolor:设置焦点高光显示的颜色。
- width:设置小部件的宽度。
- height:设置小部件的高度。
from tkinter import *
master = Tk()
w = Canvas(master, width=40, height=60)
w.pack()
canvas_height=20
canvas_width=200
y = int(canvas_height / 2)
w.create_line(0, y, canvas_width, y )
mainloop() 输出:
3.CheckButton:通过向用户显示多个选项作为切换按钮来选择任意数量的选项。一般语法为:
w = CheckButton(master, option=value)有许多选项用于更改此小部件的格式。选项的数目可以通过逗号分隔的参数传递。其中一些列在下面。
- Title:设置小部件的标题。
- activebackground:当小部件在光标下时设置背景色。
- activeforeground:当小部件在光标下时设置前景色。
- bg:设置正常背景信息
- command:调用函数。
- font:设置按钮标签上的字体。
- image:在小部件上设置图像。
from tkinter import *
master = Tk()
var1 = IntVar()
Checkbutton(master, text='male', variable=var1).grid(row=0, sticky=W)
var2 = IntVar()
Checkbutton(master, text='female', variable=var2).grid(row=1, sticky=W)
mainloop() 输出:
4.Entry:用于输入用户的单行文本条目。对于多行文本输入,使用“Text”小组件。
通用语法为:
w=Entry(master, option=value)master是用于表示父窗口的参数。
有许多选项可用于更改小部件的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- bd:以像素为单位设置边框宽度。
- bg:设置正常的背景色。
- cursor:设置使用的光标。
- command:调用一个函数。
- highlightcolor:设置焦点高光显示的颜色。
- width:设置按钮的宽度。
- height:设置按钮的高度。
from tkinter import *
master = Tk()
Label(master, text='First Name').grid(row=0)
Label(master, text='Last Name').grid(row=1)
e1 = Entry(master)
e2 = Entry(master)
e1.grid(row=0, column=1)
e2.grid(row=1, column=1)
mainloop() 输出:
5.框架(Frame):它充当容纳小部件的容器。它用于分组和组织小部件。通用语法为:
w = Frame(master, option=value)
master is the parameter used to represent the parent window.有许多选项可用于更改小部件的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- highlightcolor:设置小部件必须聚焦时焦点高光的颜色。
- bd:以像素为单位设置边框宽度。
- bg:设置正常的背景色。
- cursor:设置使用的光标。
- width:设置小部件的宽度。
- height:设置小部件的高度。
from tkinter import *
root = Tk()
frame = Frame(root)
frame.pack()
bottomframe = Frame(root)
bottomframe.pack( side = BOTTOM )
redbutton = Button(frame, text = 'Red', fg ='red')
redbutton.pack( side = LEFT)
greenbutton = Button(frame, text = 'Brown', fg='brown')
greenbutton.pack( side = LEFT )
bluebutton = Button(frame, text ='Blue', fg ='blue')
bluebutton.pack( side = LEFT )
blackbutton = Button(bottomframe, text ='Black', fg ='black')
blackbutton.pack( side = BOTTOM)
root.mainloop() 输出:
6.标签(Label):它是指您可以在其中放置可根据代码随时更新的任何文本或图像的显示框。
通用语法为:
w=Label(master, option=value)
master is the parameter used to represent the parent window.有许多选项可用于更改小部件的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- bg:设置正常的背景色。
- command:调用一个函数。
- font:在按钮标签上设置字体。
- image:在按钮上设置图像。
- width:设置按钮的宽度。
- height:以设置按钮的高度。
from tkinter import *
root = Tk()
w = Label(root, text='GeeksForGeeks.org!')
w.pack()
root.mainloop() 输出:
7.列表框(Listbox):它为用户提供了一个列表,用户可以从中接受任何数量的选项。
通用语法为:
w = Listbox(master, option=value)
master is the parameter used to represent the parent window.有许多选项可用于更改小部件的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- highlightcolor:设置小部件必须聚焦时焦点高光的颜色。
- bg:设置正常的背景色。
- bd:以像素为单位设置边框宽度。
- font:在按钮标签上设置字体。
- image:在小部件上设置图像。
- width:设置小部件的宽度。
- height:设置小部件的高度。
from tkinter import *
top = Tk()
Lb = Listbox(top)
Lb.insert(1, 'Python')
Lb.insert(2, 'Java')
Lb.insert(3, 'C++')
Lb.insert(4, 'Any other')
Lb.pack()
top.mainloop() 输出:
8.MenuButton:它是自上而下菜单的一部分,始终位于窗口中。每个菜单按钮都有其自己的功能。
通用语法为:
w = MenuButton(master, option=value)
master is the parameter used to represent the parent window.有许多选项可用于更改小部件的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- activebackground:当鼠标悬停在小部件上时设置背景。
- activeforeground:在鼠标悬停在小部件上时设置前景。
- bg:设置正常的背景色。
- bd:设置指标周围边框的大小。
- cursor:当鼠标悬停在菜单按钮上时显示光标。
- image:在小部件上设置图像。
- width:设置小部件的宽度。
- height:设置小部件的高度。
- highlightcolor:设置小部件必须聚焦时焦点高光的颜色。
from tkinter import *
top = Tk()
mb = Menubutton ( top, text = "GfG")
mb.grid()
mb.menu = Menu ( mb, tearoff = 0 )
mb["menu"] = mb.menu
cVar = IntVar()
aVar = IntVar()
mb.menu.add_checkbutton ( label ='Contact', variable = cVar )
mb.menu.add_checkbutton ( label = 'About', variable = aVar )
mb.pack()
top.mainloop() 输出:
9.菜单(Menu):用于创建应用程序使用的各种菜单。
通用语法为:
w = Menu(master, option=value)
master is the parameter used to represent the parent window.有许多选项可用于更改此小部件的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- title:设置小部件的标题。
- activebackground:设置小部件在光标下方时的背景颜色。
- activeforeground:设置小部件在光标下方时的前景色。
- bg:设置正常的背景色。
- command:调用一个函数。
- font:在按钮标签上设置字体。
- image:在小部件上设置图像。
from tkinter import *
root = Tk()
menu = Menu(root)
root.config(menu=menu)
filemenu = Menu(menu)
menu.add_cascade(label='File', menu=filemenu)
filemenu.add_command(label='New')
filemenu.add_command(label='Open...')
filemenu.add_separator()
filemenu.add_command(label='Exit', command=root.quit)
helpmenu = Menu(menu)
menu.add_cascade(label='Help', menu=helpmenu)
helpmenu.add_command(label='About')
mainloop() 输出:
10.消息(Message):它是指多行且不可编辑的文本。它的作用与Label相同。
通用语法为:
w = Message(master, option=value)
master is the parameter used to represent the parent window.有许多选项可用于更改小部件的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- bd:设置指示器周围的边框。
- bg:设置正常的背景色。
- font:在按钮标签上设置字体。
- image:在小部件上设置图像。
- width:设置小部件的宽度。
- height:设置小部件的高度。
from tkinter import *
main = Tk()
ourMessage ='This is our Message'
messageVar = Message(main, text = ourMessage)
messageVar.config(bg='lightgreen')
messageVar.pack( )
main.mainloop( ) 输出:
11.RadioButton:用于向用户提供多项选择选项。它为用户提供了多个选项,用户必须选择一个选项。
通用语法为:
w = RadioButton(master, option=value)有许多选项可用于更改此小部件的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- activebackground:设置小部件在光标下方时的背景颜色。
- activeforeground:设置小部件在光标下方时的前景色。
- bg:设置正常的背景色。
- command:调用一个函数。
- font:在按钮标签上设置字体。
- image:在小部件上设置图像。
- width:以字符为单位设置标签的宽度。
- height:以字符为单位设置标签的高度。
from tkinter import *
root = Tk()
v = IntVar()
Radiobutton(root, text='GfG', variable=v, value=1).pack(anchor=W)
Radiobutton(root, text='MIT', variable=v, value=2).pack(anchor=W)
mainloop() 输出:
12.Scale:它用于提供一个图形滑块,允许从该缩放中选择任何值。一般语法为:
w = Scale(master, option=value)
master is the parameter used to represent the parent window.有许多选项可用于更改小部件的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- cursor:当鼠标悬停在窗口小部件上时更改光标模式。
- activebackground:当鼠标悬停在小部件上时,设置小部件的背景。
- bg:设置正常的背景色。
- orient:根据需要将其设置为“水平”或“垂直”。
- from_:设置刻度范围一端的值。
- to:设置刻度范围另一端的值。
- image:在小部件上设置图像。
- width:设置小部件的宽度。
from tkinter import *
master = Tk()
w = Scale(master, from_=0, to=42)
w.pack()
w = Scale(master, from_=0, to=200, orient=HORIZONTAL)
w.pack()
mainloop() 输出:
13.Scrollbar:它是指将用于实现列出的小部件的滑动控制器。
通用语法为:
w = Scrollbar(master, option=value)
master is the parameter used to represent the parent window.有许多选项可用于更改小部件的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- width:设置小部件的宽度。
- activebackground:当鼠标悬停在小部件上时设置背景。
- bg:设置正常的背景色。
- bd:设置指标周围边框的大小。
- cursor:当鼠标悬停在菜单按钮上时显示光标。
from tkinter import *
root = Tk()
scrollbar = Scrollbar(root)
scrollbar.pack( side = RIGHT, fill = Y )
mylist = Listbox(root, yscrollcommand = scrollbar.set )
for line in range(100):
mylist.insert(END, 'This is line number' + str(line))
mylist.pack( side = LEFT, fill = BOTH )
scrollbar.config( command = mylist.yview )
mainloop() 输出:
14.Text:编辑多行文字并设置其显示方式的格式。
通用语法为:
w =Text(master, option=value)有许多选项可用于更改文本格式。可以将选项数量作为参数传递,并用逗号分隔。 下面列出了其中一些。
- highlightcolor:设置小部件必须聚焦时焦点高光的颜色。
- insertbackground:设置小部件的背景。
- bg:设置正常的背景色。
- font:在按钮标签上设置字体。
- image:在小部件上设置图像。
- width:设置小部件的宽度。
- height:设置小部件的高度。
from tkinter import *
root = Tk()
T = Text(root, height=2, width=30)
T.pack()
T.insert(END, 'GeeksforGeeks\nBEST WEBSITE\n')
mainloop() 输出:
15.TopLevel:此窗口小部件由窗口管理器直接控制。它不需要任何父窗口。常规语法为:
w = TopLevel(master, option=value)有许多选项可用于更改小部件的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- bg:设置正常的背景色。
- bd:设置指标周围边框的大小。
- cursor:当鼠标悬停在菜单按钮上时显示光标。
- width:设置小部件的宽度。
- height:设置小部件的高度。
from tkinter import *
root = Tk()
root.title('GfG')
top = Toplevel()
top.title('Python')
top.mainloop() 输出:
16.SpinBox:它是“entry”小部件的一个条目。在这里,可以通过选择数字的固定值来输入值。一般语法为:
w = SpinBox(master, option=value)有许多选项可用于更改小部件的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- bg:设置正常的背景色。
- bd:设置指标周围边框的大小。
- cursor:当鼠标悬停在菜单按钮上时显示光标。
- command:调用一个函数。
- width:设置小部件的宽度。
- activebackground:当鼠标悬停在小部件上时设置背景。
- disabledbackground:当鼠标悬停在小部件上时禁用背景。
- from_:设置范围一端的值。
- to:设置范围另一端的值。
from tkinter import *
master = Tk()
w = Spinbox(master, from_ = 0, to = 10)
w.pack()
mainloop() 输出:
17.PannedWindowIt是一个容器小部件,用于处理排列在其中的窗格数。一般语法为:
w = PannedWindow(master, option=value)master是用于表示父窗口的参数。
有许多选项可用于更改小部件的格式。可以将选项数量作为参数传递,并用逗号分隔。下面列出了其中一些。
- bg:设置正常的背景色。
- bd:设置指标周围边框的大小。
- cursor:当鼠标悬停在菜单按钮上时显示光标。
- width:设置小部件的宽度。
- height:设置小部件的高度。
from tkinter import *
m1 = PanedWindow()
m1.pack(fill = BOTH, expand = 1)
left = Entry(m1, bd = 5)
m1.add(left)
m2 = PanedWindow(m1, orient = VERTICAL)
m1.add(m2)
top = Scale( m2, orient = HORIZONTAL)
m2.add(top)
mainloop() 输出:
相关推荐
- 360助手电脑版客户端(360软件助手电脑)
-
还是非常好的,都是能够让他可以直接拦截病毒,同时能够让他清理内存,而且能够让这个有非常好的手机应用软件权限优化作用。360手机助手是360推出的手机助手,拥有海量软件和游戏轻松下载,炫彩主题壁纸随心点...
- 手机360助手官网下载(手机360助手最新版下载)
-
1、在电脑上安装360安全卫士打开它里边里的360手机助手2、手机设置系统设置——应用程序——未知来源打钩——开发USB调试打钩允许模拟位置打钩3、连接电脑、手机,并打开手机助手4、手机助...
- window10安装密钥(win10安装密钥命令)
-
以专业版为例,win10密钥是由25个字符组成的代码,用于激活windows,根据用户获取windows10副本的方式,需要由25个字符组成的产品密钥或数字许可证才能激活它。数字许可证是windows...
- 电脑windows7无法连接到网络
-
解决方法:1、在使用电脑的时候,出现了网络连接不可用的问题,可能造成的原因主要有网络连接被禁用,DNS和IP地址获取不对,网卡驱动损坏,网线没有插好。2、鼠标右键网络连接图标进去,点击更改适配器设置。...
- 路由器静态ip填什么(路由器的静态ip)
-
手机登入路由器web界面,输入用户名和密码,第一次弹出设置向导,选择静态ip上网方式,填写可以上网的ip地址,如ip192.168.1.188子网掩码255.255.255.0网关192.168....
- 电脑频繁断电关机(电脑经常断电是不是电源的问题)
-
电脑自动关机主要有以下几种原因造成:1.散热不好。由于天气温度的影响或CPU风扇的转数不够所引起的系统过热,从而会导致电脑的自动关机,建议可以检查一下系统温度是否正常。2.内存原因。当内存与主板插...
- 华为手机双密码双界面(华为手机双密码双界面忘记密码了怎么办)
-
华为手机锁屏怎么有两个锁屏?通常情况下是你多设置了一个锁屏,第一个就是你手势。锁屏二个是密码锁屏,通常这两个同时使用会出现有两个锁屏的现象。你可以在设置里面重新设置一个锁屏就可以了。华为手机锁屏有两个...
- 无线路由器密码在哪看(无线路由器密码在哪里看)
-
笔记本已连接wifi密码查看:1.同时按住按键上面的Win和R这2个按键,打开运行程序。2.在运行程序中输入“ncpa.cpl”,并点击“确定”。3.找到WLAN或者无线网络连接图标,...
- office2003的主要功能(word2003的主要功能)
-
是一套Office2003专业版的精简版,包含常用的Word、Excel、PowerPoint三个应用,使用者甚多。楼主如果有需要,请上电脑在本帖下载我的附件。
- 怎样准备一个带pe的u盘的(带pe系统的u盘)
-
一、U盘安装系统前期准备: 1、首先需要预备一个空的4G或以上U盘,用来存储启动程序跟系统文件。 2、接着我们需要安装的ghost系统。 3、U盘启动盘制作工具:U盘启动工具 二、U盘启动盘制...
- 怎样拷贝文件到u盘里(怎么文件拷贝到u盘)
-
方法/步骤分步阅读1点击安全打开等电脑的桌面中弹出U盘插入成功的提示框之后,点击安全打开,将U盘打开。2点击文件将U盘打开之后,在电脑的桌面中找到需要拷贝的文件,点击鼠标右键等弹出序列。3点击复制弹出...
-
- 固态硬盘怎么安装win7(固态硬盘怎么安装在电脑上)
-
1.首选需要找一个4GB以上的U盘2.用来存放Win7的ISO镜像文件。带有光盘标识的即为“光盘映像文件”3.在点击写入之前,一定要确保U盘里面没有任何数据,如果有数据应该及时备份,否则里面的数据将被删除,不过在做完启动盘后,仍然可以向里面...
-
2025-12-27 13:03 off999
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
