tkinter是Python内置的标准GUI库,程序员可以使用tkinter类库快速方便的创建出GUI应用程序。
1、tkinter的导入
tkinter是内置在python安装包中的,无需再手动安装,直接导入即可使用。
import tkinter #这种方式导入,不能省略模块名tkinter import tkinter as tk #这种方式导入,模块名改用tk from tkinter import * #这种方式导入,不能省略模块名tkinter
2、创建窗口
1 import tkinter 2 3 # 创建窗口 4 root = tkinter.Tk() 5 6 # 设置窗口的标题 7 root.title("第一个GUI编程") 8 9 # 设置窗口的大小和位置 10 root.geometry("400x400+200+200") #是小写字母x 11 12 # 进入消息循环 13 root.mainloop()
3、Label控件
label控件是标签控件,用于显示文本。
1 import tkinter 2 3 root = tkinter.Tk() 4 root.title("第一个GUI编程") 5 root.geometry("400x400+200+200") 6 7 #label控件 8 label = tkinter.Label(root, 9 text="hello word!", 10 bg="black", fg="white", 11 font=("黑体", 20), 12 width=20, 13 height=10) 14 #root:在当前窗口定义 15 # text:显示文本内容 16 # bg:背景颜色 17 # fg:字体颜色 18 # font:字体(有时候还要把字体的路径标注好) 19 20 # 放置控件 21 label.pack() 22 23 root.mainloop()
4、Entry控件
Entry控件是输入控件,用于显示单行文本内容。注意:"Entry"首字母要大写。
import tkinter root = tkinter.Tk() root.title("第一个GUI编程") root.geometry("400x400+200+200") # 文本显示方式 entry1 = tkinter.Entry(root, show="*") #用*显示输入的内容,密码的输入 entry1.pack() # 绑定变量 e = tkinter.Variable() #e就代表输入框这个对象 # 为e设置值 e.set("abcdefghijklmn") entry2 = tkinter.Entry(root, textvariable=e) entry2.pack() # 获取Entry中的数据 print(e.get()) print(entry2.get()) root.mainloop()
5、Text控件
Text控件是文本文件,用于显示多行文本内容。注意:"Text"首字母要大写。
import tkinter root = tkinter.Tk() root.title("yudanqu") root.geometry("400x400+200+200") # height表示的是显示的行数 text = tkinter.Text(root, width=12, height=4) text.pack() str = '床前明月光,\n疑是地上霜.\n举头望明月,\n低头思故乡.\n' # 中文占两个字符 #将上面的文本内容插入到Text控件内 text.insert(tkinter.INSERT, str) root.mainloop()
6、滚动条
当显示的行数不足以显示文本所有内容时,我们需要对文本控件创建一个滚动条(scroll)。滚动条常常与Text文件,Entry控件,列表框Listbox控件等组合在一起使用。
import tkinter root = tkinter.Tk() root.title("第一次GUI编程") # 创建滚动条 scroll = tkinter.Scrollbar() text = tkinter.Text(root, width=12, height=1) # side代表滚动条放置的位置,fill用于填充 scroll.pack(side=tkinter.RIGHT, fill=tkinter.Y) #文本控件放在滚动条的左侧 text.pack(side=tkinter.LEFT, fill=tkinter.Y) # 把滚动条和文本控件组合在一起 scroll.config(command=text.yview) text.config(yscrollcommand=scroll.set) text.pack() str = '床前明月光,\n疑是地上霜.\n举头望明月,\n低头思故乡.\n' # 把上面的内容插入到文本控件内 text.insert(tkinter.INSERT, str) root.mainloop()
7、Button控件
Button控件是按钮控件,在程序中显示为一个按钮,一般是和特定的函数结合使用。注意:"Button"首字母要大写。
import tkinter # 特定的函数 def Hello(): print("你好啊,要好好学习啊!") root = tkinter.Tk() root.title("第一个GUI编程") root.geometry("400x400+200+200") # 创建按钮 button1 = tkinter.Button(root, text="你好", command=Hello, width=10, height=10) button1.pack() # root代表当前Button对象 # text代表按钮的名字 # command代表按钮执行的命令 # width代表按钮的宽度 # height代表按钮的高度 button2 = tkinter.Button(root, text="按钮", command=lambda: print("Hello Word!")) button2.pack() button3 = tkinter.Button(root, text="退出", command=root.quit) button3.pack() root.mainloop()
8、单选按钮Radiobutton控件
单选按钮Radiobutton控件用于实现单选功能。Radiobutton可以显示文本,也可以显示图片。
import tkinter root = tkinter.Tk() root.title("第一次GUI编程") root.geometry("400x400+200+200") def select(): print(r.get()) r = tkinter.IntVar() r1 = tkinter.Radiobutton(root,text="one",value=1,variable=r,command=select) r1.pack() r2 = tkinter.Radiobutton(root,text="two",value=2,variable=r,command=select) r2.pack() root.mainloop()
9、多选按钮Checkbutton控件
多选按钮Checkbutton控件,它可以实现多选功能。和单选按钮Radiobutton控件一样,可以显示文本,也可以显示图片。
import tkinter root = tkinter.Tk() root.title("GUI编程") root.geometry("400x400+200+200") def function(): message = "" if a.get() ==True: message += "C++\n" if b.get() == True: message += "Java\n" if c.get() == True: message += "Python\n" # 清空text的内容 text.delete(0.0, tkinter.END) text.insert(tkinter.INSERT, message) # 绑定变量 a = tkinter.BooleanVar() cb1 = tkinter.Checkbutton(root,text="C++",variable=a,command=function) cb1.pack() b = tkinter.BooleanVar() cb2 = tkinter.Checkbutton(root,text="Java",variable=b,command=function) cb2.pack() c = tkinter.BooleanVar() cb3 = tkinter.Checkbutton(root, text="Python", variable=c,command=function) cb3.pack() # 显示文本框 text = tkinter.Text(root, width=50, height=10) text.pack() root.mainloop()
10、Listbox列表框控件
Listbox列表控件用于显示多个项目,并且允许用户选择一个或多个项目。
import tkinter root = tkinter.Tk() root.title("GUI编程") root.geometry("400x400+200+200") # 单选操作 lb = tkinter.Listbox(root,selectmode=tkinter.BROWSE) # 多选操作 # lb = tkinter.Listbox(root,selectmode=tkinter.MULTIPLE) lb.pack() list = ["B", "C", "E", "F", "G", "H"] # 依次添加 for item in list: lb.insert(tkinter.END,item) # 在列表的头部进行添加 lb.insert(tkinter.ACTIVE, "A") # 把列表做为一个元素进行添加操作 # lb.insert(tkinter.END, ["I", "J"]) # 根据索引进行删除操作 # lb.delete(1,2) # 选中 # lb.select_set(2,3) # 取消选中 # lb.select_clear(2) # 获取到列表中的元素个数 # print(lb.size()) # 根据索引获取数据 # print(lb.get(2,3)) # 判断一个选项是否被选中 返回True和False # print(lb.selection_includes(3)) root.mainloop()