(Scale) 是一种 直观地进行数值输入的交互控件,其主要属性见下表:
滑块控件实例的主要方法比较简单,有 get()和set(值),分别为取值和将滑块设在某特定值上。滑块实例也可绑定鼠标左键释放事件<ButtoonRelease-1>,并在执行函数中添加参数event来实现事件响应。
例如:在一个窗体上设计一个200像素宽的水平滑块,取值范围为1.0~5.0,分辨精度为0.05,刻度间隔为 1,用鼠标拖动滑块后释放鼠标可读取滑块值并显示在标签上。效果如下:
from tkinter import * def show(event): s = \'滑块的取值为\' + str(var.get()) lb.config(text=s) root = Tk() root.title(\'滑块实验\') root.geometry(\'320x180\') var=DoubleVar() scl = Scale(root,orient=HORIZONTAL,length=200,from_=1.0,to=5.0,label=\'请拖动滑块\',tickinterval=1,resolution=0.05,variable=var) scl.bind(\'<ButtonRelease-1>\',show) scl.pack() lb = Label(root,text=\'\') lb.pack() root.mainloop() 3.7 菜单
(Menu)用于可视化地为一系列的命令分组,从而方便用户找到和触发执行这些命令。这里Menu所实例化别的主要是菜单,其通式为:
菜单实例名=Menu(根窗体) 菜单分组1=Menu(菜单实例名) 菜单实例名.add_cascade(<label=菜单分组1 显示文本>,<menu=菜单分组1>) 菜单分组1.add_command(<label=命令1文本>,<command=命令1函数名>)1
2
3
4
其中较为常见的方法有:add_cascade()、add_command()和add_separator(),分别用于添加一个菜单分组、添加一条菜单命令和添加一条分割线。
利用Menu控件也可以创建快捷菜单(又称为上下文菜单)。通常需要右击弹出的控件实例绑定鼠标右击响应事件,并指向一个捕获event参数的自定义函数,在该自定义函数中,将鼠标的触发位置event.x_root 和 event.y_root以post()方法传给菜单。
例子: 仿照window自带的“记事本”中的文件和编辑 菜单,实现在主菜单个快捷菜单上触发菜单命令,并相应改变窗体上的标签的文本内容。效果如下: