Python-Tkinter图形化界面设计(详细教程 ) (5)

(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自带的“记事本”中的文件和编辑 菜单,实现在主菜单个快捷菜单上触发菜单命令,并相应改变窗体上的标签的文本内容。效果如下:

在这里插入图片描述

from tkinter import * def new(): s = \'新建\' lb1.config(text=s) def ope(): s = \'打开\' lb1.config(text=s) def sav(): s = \'保存\' lb1.config(text=s) def cut(): s = \'剪切\' lb1.config(text=s) def cop(): s = \'复制\' lb1.config(text=s) def pas(): s = \'粘贴\' lb1.config(text=s) def popupmenu(event): mainmenu.post(event.x_root,event.y_root) root = Tk() root.title(\'菜单实验\') root.geometry(\'320x240\') lb1 = Label(root,text=\'显示信息\',font=(\'黑体\',32,\'bold\')) lb1.place(relx=0.2,rely=0.2) mainmenu = Menu(root) menuFile = Menu(mainmenu) # 菜单分组 menuFile mainmenu.add_cascade(label="文件",menu=menuFile) menuFile.add_command(label="新建",command=new) menuFile.add_command(label="打开",command=ope) menuFile.add_command(label="保存",command=sav) menuFile.add_separator() # 分割线 menuFile.add_command(label="退出",command=root.destroy) menuEdit = Menu(mainmenu) # 菜单分组 menuEdit mainmenu.add_cascade(label="编辑",menu=menuEdit) menuEdit.add_command(label="剪切",command=cut) menuEdit.add_command(label="复制",command=cop()) menuEdit.add_command(label="粘贴",command=pas()) root.config(menu=mainmenu) root.bind(\'Button-3\',popupmenu) # 根窗体绑定鼠标右击响应事件 root.mainloop() 3.8 子窗体

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzdxp.html