Python GUI Tkinter入门用法指南

2021年4月27日16:58:35 发表评论 1,393 次浏览

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应用程序时需要记住两种主要方法。

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 object

mainloop():当你的应用程序准备运行时, 将使用一种名为mainloop()的方法。 mainloop()是一个无限循环, 用于运行应用程序, 等待事件发生并在不关闭窗口的情况下处理该事件。

m.mainloop()
import tkinter
m = tkinter.Tk()
'''
widgets are added here
'''
m.mainloop()

tkinter还提供了对小部件的几何配置的访问, 这些几何配置可以在父窗口中组织小部件。主要有三个几何管理器类类。

  1. pack()方法:在放入父窗口小部件之前, 它会按块组织窗口小部件。
  2. grid()方法:在放置到父小部件中之前, 它将小部件组织在网格中(表格结构)。
  3. place()方法:它通过将小部件放在程序员指示的特定位置来组织小部件。

你可以在tkinter应用程序中放入许多小部件。以下是一些主要小部件的说明:

按钮:要在你的应用程序中添加按钮, 请使用此小部件。

通用语法为:

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()

输出如下:

Python GUI Tkinter入门用法指南1

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()

输出如下:

Python GUI Tkinter入门用法指南2

CheckButton:通过向用户显示多个选项作为切换按钮来选择任何数量的选项。通用语法为:

w = CheckButton(master, option=value)

有许多选项可用于更改此小部件的格式。可以将选项数量作为参数传递, 并以逗号分隔。下面列出了其中一些。

  • Title:设置小部件的标题。
  • activebackground:设置小部件在光标下方时的背景颜色。
  • activeforeground:设置小部件在光标下方时的前景色。
  • bg:设置普通背景

    Break

    密码:

    附加File:nd颜色。

  • 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()

输出如下:

Python GUI Tkinter入门用法指南3

Entry:它用于输入来自用户的单行文本条目。对于多行文本输入, 使用"文本"小部件。

通用语法为:

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()

输出如下:

Python GUI Tkinter入门用法指南4

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()

输出如下:

Python GUI Tkinter入门用法指南5

标签:它是指可以在其中放置可以根据代码随时更新的任何文本或图像的显示框。

通用语法为:

w=Label(master, option=value)
master is the parameter used to represent the parent window.

有许多选项可用于更改小部件的格式。选项的数量可以作为参数传递, 并以逗号分隔。下面列出了其中一些。

  • bg:设置正常的背景色。
  • bg设置正常的背景色。
  • command:调用一个函数。
  • font:在按钮标签上设置字体。
  • image:在按钮上设置图像。
  • width:设置按钮的宽度。
  • height:来设置按钮的高度。
from tkinter import *
root = Tk()
w = Label(root, text = 'lsbin.org!' )
w.pack()
root.mainloop()

输出如下:

Python GUI Tkinter入门用法指南6

列表框:它向用户提供了一个列表, 用户可以从中接受任何数量的选项。

通用语法为:

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()

输出如下:

Python GUI Tkinter入门用法指南7

菜单按钮:这是自上而下菜单的一部分, 该菜单始终保持在窗口中。每个菜单按钮都有其自己的功能。通用语法为:

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()

输出如下:

Python GUI Tkinter入门用法指南8

菜单:用于创建应用程序使用的各种菜单。

通用语法为:

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()

输出如下:

Python GUI Tkinter入门用法指南9

信息:表示多行且不可编辑的文本。它的作用与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( )

输出如下:

Python GUI Tkinter入门用法指南10

单选按钮:它用于向用户提供多项选择选项。它为用户提供了多个选项, 用户必须选择一个选项。

通用语法为:

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()

输出如下:

Python GUI Tkinter入门用法指南11

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()

输出如下:

Python GUI Tkinter入门用法指南12

滚动条:它是指将用于实现列出的小部件的幻灯片控制器。

通用语法为:

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()

输出如下:

Python GUI Tkinter入门用法指南13

文本:编辑多行文本并设置其显示方式的格式。

通用语法为:

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, 'lsbin\nBEST WEBSITE\n' )
mainloop()

输出如下:

Python GUI Tkinter入门用法指南14

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()

输出如下:

Python GUI Tkinter入门用法指南15

SpinBox:这是"条目"小部件的条目。在这里, 可以通过选择数字的固定值来输入值。一般语法为:

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()

输出如下:

Python GUI Tkinter入门用法指南16

PannedWindow:它是一个容器小部件, 用于处理其中排列的多个窗格。通用语法为:

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()

输出如下:

Python GUI Tkinter入门用法指南17

如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: