在本系列教程中,我们将学习如何通过使用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()
如下图:

简单吧!
添加菜单栏
要添加菜单栏,可以使用如下菜单类:
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()
如下所示:
这样,您可以添加任意数量的菜单项。
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()
如下:

在这里,我们添加了另一个名为编辑与保存的菜单项,它带有一个菜单分隔符。
您可能会在开始时注意到一条虚线,如果单击该行,它将在一个单独的小窗口中显示菜单项。
你可以通过像如下这样禁用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()
如下:

通过这种方式,您可以添加任意多的选项卡。
将组件添加到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()

为小部件添加间距(填充)
您可以使用padx和pady属性为控件添加填充,以使其看起来井井有条。
只需将padx和pady传递给任何小部件并为其提供值即可。
lbl1 = Label(tab1, text= '标签1', padx=5, pady=5)
就这么简单!
在本教程中,我们看到了许多使用Tkinter库的Python GUI示例,并且看到了使用它开发图形界面的难易程度。
本教程涵盖了Python GUI开发的主要方面,但并非全部。 没有教程或书籍可以涵盖所有内容。
我希望您发现这些示例有用。
OK,本系列到此结束,就这样。