跟我学Python GUI编程系列 – Tkinter(6)-演道网
在本系列教程中,我们将学习如何通过使用Tkinter包编写Python GUI示例来开发图形用户界面。
本文我们Linux环境:Ubuntu 20.04 LTS,Python版本为3.8.2。同样使用IDLE。
添加文件对话框(文件和目录选择器)
要创建文件对话框(文件选择器),可以使用如下所示的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.title(“欢迎使用linuxidc.com应用”)
window.geometry(‘600×400’)
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.title(“欢迎使用linuxidc.com应用”)
window.geometry(‘600×400′)
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.title(“欢迎使用linuxidc.com应用”)
window.geometry(‘600×400′)
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控件(选项卡控件)
要创建选项卡控件,有几个步骤。
- 首先,我们使用Notebook类创建一个选项卡控件。
- 使用Frame类创建一个选项卡。
- 将该选项卡添加到选项卡控件。
- 打包选项卡控件,使其在窗口中可见。
from tkinter import *
from tkinter import ttk
window = Tk()
window.title(“欢迎使用linuxidc.com应用”)
window.geometry(‘600×400′)
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.title(“欢迎使用linuxidc.com应用”)
window.geometry(‘600×400′)
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 = Label(tab2, text= ‘标签2-打印www.linuxidc.com’)
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,本系列到此结束,就这样。
【跟我学Python GUI编程系列 见 https://www.linuxidc.com/search.aspx?where=nkey&keyword=65442 】
更多Python相关信息见Python 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=17
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.as
转载自演道,想查看更及时的互联网产品技术热点文章请点击http://go2live.cn