tkinter小部件3

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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

复习法处理好

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值