8.顶层窗口tk.Toplevel
功能类似于根窗口,产生一个独立于根窗口的新窗口,它的常用方法和根窗口相同关闭toplevel窗口不会影响到根窗口
toplevel.py
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title(‘根窗口root’)
toplevel = tk.Toplevel()
toplevel.title(‘新窗口toplevel’)
top_label = ttk.Label(toplevel, text=‘这是toplevel’)
top_label.pack()
root.mainloop()
9.单选按钮Radiobutton
用于选择,只能单选,常与Frame一起使用
radiobutton.py
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
frame = tk.Frame(root)
radio_var = tk.StringVar()
# tk版本
# radio1 = tk.Radiobutton(frame, text="男", variable=radio_var, value="man")
# radio2 = tk.Radiobutton(frame, text="女", variable=radio_var, value="woman")
# radio3 = tk.Radiobutton(frame, text="保密", variable=radio_var, value="secret")
# ttk版本
radio1 = ttk.Radiobutton(frame, text="男", variable=radio_var, value="man")
radio2 = ttk.Radiobutton(frame, text="女", variable=radio_var, value="woman")
radio3 = ttk.Radiobutton(frame, text="保密", variable=radio_var, value="secret")
frame.pack()
radio1.pack(side=tk.LEFT)
radio2.pack(side=tk.LEFT)
radio3.pack(side=tk.LEFT)
def on_submit():
print(radio_var.get())
button = tk.Button(root, text='提交', command=on_submit)
button.pack()
root.mainloop()
常用参数:
- text单选按钮右侧显示的文本
- variable变量
- value当按钮被选中时设置变量的值
- command当按钮被点击时执行的回调函数
- textvariable绑定到按钮标签文本的变量(使用较少)
- underline文本中需要下划线的字符的索引
- activebackground鼠标悬浮在单选按钮上时的背景色
- activeforeground鼠标悬浮在单选按钮上时的字体颜色
- highlightbackground鼠标悬浮在单选按钮上时的背景色
- highlightcolor鼠标悬浮在单选按钮上时的字体颜色
- command更改选项时自动调用的函数
- indicatoron值为0时可以建立盒子选项按钮
- selectcolor单选按钮被选取时的颜色
- selectimage设置了image参数后,可以通过此参数设置单选按钮被选中时的图像
- state按钮状态
10.尺度条Scale
类似于数轴的尺度条,可以用来从一个范围里选取数字
常用参数:
- digitals尺度数值
- from_
- to
- label尺度条旁边的文字,水平尺度条文字出现在左上角,垂直尺度条文字出现在右上角
- length尺度条长度,默认100像素
- repeatdelay延迟,按住尺度条发生移动的时间,默认300,单位毫秒
- resolution每次增加或减少的值
- showvalue是否显示当前值
- takefocus是否可以取得焦点
- tickinterval尺度条刻度标记的长度
- troughcolor尺度条凹槽的颜色
- variable变量
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
scale = ttk.Scale(root, from_=0, to=10, length=600)
scale.pack()
root.mainloop()
11.消息Message
类似于Label,里面的文本可以自动换行
常用参数:
- aspect小部件宽度与高度比,默认150%
import tkinter as tk
root = tk.Tk()
mytext = 'HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字,图形、动画、声音、表格、链接等。'
message = tk.Message(root, text=mytext)
message.pack()
root.mainloop()
12.列表框tk.Listbox
从预设的选择值中进行选择
listbox.py
import tkinter as tk
root = tk.Tk()
listbox = tk.Listbox(root, height=1) # 仅显示选定项
listbox.pack()
# 添加选项
choices = ['python', 'css', 'html']
for choice in choices:
listbox.insert(tk.END, choice)
def on_submit():
print(listbox.get(tk.ACTIVE)) # 获取选中的项,没有选中时,默认选中第一个
# def on_submit():
# choice_index = listbox.curselection() # 获取列表元素下标,并将其写成单元素元组形式
# # print(choice_index)
# if choice_index:
# print(listbox.get(choice_index))
# else:
# print('没有选择')
button = tk.Button(root, text="获取选择", command=on_submit)
button.pack()
root.mainloop()
常用参数:
- height指定可见的行数,height=1时仅显示选定项,可以使用键盘上的上下箭头按键访问其他选项
- highlightcolor
- highlightthickness
- listvariable以变量方式处理选项内容
- selectmode决定有多少个选项可以被选中,以及鼠标拖拽如何影响选项,可选值browse(默认)/single/multiple(多选)/extended
- xscrollcommand在x方向使用滚动条
- yscrollcommand在y方向使用滚动条
常用方法:
- insert(),第一个参数常使用tk.END,表示插入的每个选项都将放置在末尾,也可以传入0,传入0时顺序与传入tk.END相反
- get(),常传入tk.ACTIVE,获取选中的值,传入下标,获取下标对应的值
- size(),返回列表元素的个数
- selection_set()选取特定索引项
- delete()删除特定索引项
- curselection()返回元素的下标
- selection_include()检查指定索引是否被选取
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
langs = ['c', 'c++', 'python', 'go', 'java']
listbox = tk.Listbox(root, selectmode='extended')
for lang in langs:
listbox.insert(tk.END, lang)
listbox.pack()
# 打印选项个数
# print(listbox.size())
# 默认选择列表下标为3的选项
# listbox.select_set(3)
# 默认选择列表下标为1到3的选项
# listbox.select_set(1, 3)
# 删除列表下标为2的选项
# listbox.delete(2)
# 删除列表下标为2到4的选项
# listbox.delete(2, 4)
# 打印列表下标为2的选项
# print(listbox.get(2))
# 打印列表下标为0到2的选项
print(listbox.get(0, 2))
root.mainloop()