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

引用tkinter.filedialog包,可弹出文件选择对话框,让用户直观地选择一个或一组文件,以供进一步的文件操作。常用的文件选择对话框函数有 askopenfilename()、askopenfilenames()和asksaveasfilename(),分别用于进一步打开一个文件、一组文件和保存文件。其中,askopenfilename()和asksaveasfilenamme()函数的返回值类型为包含文件路径的文件名字符串,而askopenfilenames()函数的返回值类型为元组。
例如:单击按钮,弹出文件选择对话框(“打开”对话框),并将用户所选择的文件路径和文件名显示在窗体的标签上。如下

在这里插入图片描述

from tkinter import * import tkinter.filedialog def xz(): filename=tkinter.filedialog.askopenfilename() if filename != \'\': lb.config(text=\'您选择的文件是\'+filename) else: lb.config(text=\'您没有选择任何文件\') root = Tk() lb = Label(root,text=\'\') lb.pack() btn=Button(root,text=\'弹出文件选择对话框\',command=xz) btn.pack() root.mainloop() 3.9.3、颜色选择对话框

引用tkinter.colorchooser包,可使用 askcolor()函数弹出模式颜色选择对话框,让用户可以个性化地设置颜色属性。该函数的返回形式为包含RGB十进制浮点元组和RGB十六进制字符串的元组类型,例如:“((135.527343.52734375,167.65234375,186.7265625)),’#87a7ba’”。通常,可将其转换为字符串类型后,再截取以十六进制数表示的RGB颜色字符串用于为属性赋值。
举例:单击按钮,弹出颜色选择对话框,并将用户所选择的颜色设置为窗体上标签的背景颜色,如下:

在这里插入图片描述

from tkinter import * import tkinter.colorchooser def xz(): color=tkinter.colorchooser.askcolor() colorstr=str(color) print(\'打印字符串%s 切掉后=%s\' % (colorstr,colorstr[-9:-2])) lb.config(text=colorstr[-9:-2],background=colorstr[-9:-2]) root = Tk() lb = Label(root,text=\'请关注颜色的变化\') lb.pack() btn=Button(root,text=\'弹出颜色选择对话框\',command=xz) btn.pack() root.mainloop()


四、事件响应

用tkinter 可将用户事件与自定义函数绑定,用键盘或鼠标的动作事件来响应触发自定义函数的执行。其通式为:

控件实例.bind(<事件代码>,<函数名>)

1

其中,事件代码通常以半角小于号“<”和大于号“>” 界定,包括事件和按键等 2~3个部分,它们之间用减号分隔,常见事件代码见下表:

在这里插入图片描述


例如,将框架控件实例frame 绑定鼠标右键单击事件,调用自定义函数 myfunc()可表示为"frame.bind(’’,myfunc)",注意: myfunc后面没有括号。将控件实例绑定到键盘事件和部分光标不落在具体控件实例上的鼠标事件时,还需要设置该实例执行focus_set() 方法获得焦点,才能对事件持续响应。例如: frame.focus_set()。所调用的自定义函数若需要利用鼠标或键盘的响应值,可将event作为参数,通过event的属性获取。event的属性见下表:

在这里插入图片描述


在这里插入图片描述

from tkinter import * def show(event): s=event.keysym lb.config(text=s) root=Tk() root.title(\'按键实验\') root.geometry(\'200x200\') lb=Label(root,text=\'请按键\',font=(\'黑体\',48)) lb.bind(\'<Key>\',show) lb.focus_set() lb.pack() root.mainloop() 补充: 五、背景图片

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

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