设为首页 加入收藏

TOP

跟我学Python GUI编程系列 - Tkinter(6)
2023-07-26 08:18:25 】 浏览:197
Tags:Python GUI 程系列 Tkinter

在本系列教程中,我们将学习如何通过使用Tkinter包编写Python GUI示例来开发图形用户界面。


添加文件对话框(文件和目录选择器)


要创建文件对话框(文件选择器),可以使用如下所示的filedialog类:


from tkinter import filedialog


file = filedialog.askopenfilename()


选择文件并点击“打开”后,file变量将保存该文件的路径。


另外,如果想一次选择多个文件并打开,我们可以使用如下所示:


files = filedialog.askopenfilenames()


指定文件类型(过滤文件扩展名)


您可以使用filetypes参数为文件对话框指定文件类型,只需在元组中指定扩展名即可。


file = filedialog.askopenfilename(filetypes = (("Text files","*.txt"),("all files","*.*")))


您可以使用askdirectory方法请求目录:


dir = filedialog.askdirectory()


您可以通过使用initialdir来指定文件对话框的初始目录,如下所示:


from os import path


file = filedialog.askopenfilename(initialdir= path.dirname(__file__))


完整代码如下:


from tkinter import *
from tkinter import filedialog
import os


window = Tk()


window.geometry('600x400')


def clicked():
    file = filedialog.askopenfilenames(initialdir=os.path.dirname(__file__))
btn = Button(window, text="点击这里", command=clicked)
btn.grid(column=0, row=0)
window.mainloop()


如下图:


跟我学Python GUI编程系列 - Tkinter(6)


简单吧!


添加菜单栏


要添加菜单栏,可以使用如下菜单类:


from tkinter import Menu


menu = Menu(window)


menu.add_command(label='文件')


window.config(menu=menu)


首先,我们创建一个菜单,然后添加我们的第一个标签,最后,将菜单分配给我们的窗口。


您可以使用add_cascade()函数将菜单项添加到任何菜单下,如下所示:


menu.add_cascade(label='文件', menu=new_item)


我们的代码如下所示:


from tkinter import *


from tkinter import Menu


window = Tk()


window.geometry('600x400')


menu = Menu(window)


new_item = Menu(menu)


new_item.add_command(label='新建')


menu.add_cascade(label='文件', menu=new_item)


window.config(menu=menu)


window.mainloop()


如下所示:


跟我学Python GUI编程系列 - Tkinter(6) 


这样,您可以添加任意数量的菜单项。


from tkinter import *


from tkinter import Menu


window = Tk()


window.geometry('600x400')


menu = Menu(window)


new_item = Menu(menu)


new_item.add_command(label='新建')


new_item.add_separator()


new_item.add_command(label='编辑')


new_item.add_separator()


new_item.add_command(label='保存')


menu.add_cascade(label='文件', menu=new_item)


window.config(menu=menu)


window.mainloop()


如下:


跟我学Python GUI编程系列 - Tkinter(6)


在这里,我们添加了另一个名为编辑与保存的菜单项,它带有一个菜单分隔符。


您可能会在开始时注意到一条虚线,如果单击该行,它将在一个单独的小窗口中显示菜单项。


你可以通过像如下这样禁用tearoff功能来禁用这个功能:


new_item = Menu(menu, tearoff=0)


只需将上面示例中的new_item替换为该示例,它将不再显示虚线。


再次提醒您可以通过指定command属性来键入当用户单击任何菜单项时可以使用的任何代码。


new_item.add_command(label='新建', command=clicked)


添加一个Notebook控件(选项卡控件)


要创建选项卡控件,有几个步骤。


from tkinter import *


from tkinter import ttk


window = Tk()


window.geometry('600x400')


tab_control = ttk.Notebook(window)


tab1 = ttk.Frame(tab_control)


tab_control.add(tab1, text='文件')


tab_control.pack(expand=1, fill='both')


window.mainloop()


如下:


跟我学Python GUI编程系列 - Tkinter(6)


通过这种方式,您可以添加任意多的选项卡。


将组件添加到Notebook


创建选项卡之后,可以通过将父属性分配给所需的选项卡,将组件放置在这些选项卡中。


from tkinter import *


from tkinter import ttk


window = Tk()


window.geometry('600x400')


tab_control = ttk.Notebook(window)


tab1 = ttk.Frame(tab_control)


tab2 = ttk.Frame(tab_control)


tab_control.add(tab1, text='文件')


tab_control.add(tab2, text='打印')


lbl1 = Label(tab1, text= '标签1-Linux公社')


lbl1.grid(column=0, row=0)


lbl2.grid(column=0, row=0)


tab_control.pack(expand=1, fill='both')


window.mainloop()


跟我学Python GUI编程系列 - Tkinter(6)


为小部件添加间距(填充)


您可以使用padx和pady属性为控件添加填充,以使其看起来井井有条。


只需将padx和pady传递给任何小部件并为其提供值即可。


lbl1 = Label(tab1, text= '标签1', padx=5, pady=5)


就这么简单!


在本教程中,我们看到了许多使用Tkinter库的Python GUI示例,并且看到了使用它开发图形界面的难易程度。


本教程涵盖了Python GUI开发的主要方面,但并非全部。 没有教程或书籍可以涵盖所有内容。


我希望您发现这些示例有用。 


OK,本系列到此结束,就这样。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇使用Python和Tkinter构建简单的Ma.. 下一篇SpringBoot 使用 JSR303 自定义校..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目