python中ttk和tkinter_Python Tkinter ttk组件及用法(附带实例)

前面程序都是直接使用 tkinter 模块下的 GUI 组件的,这些组件看上去特别“复古”,也就是丑,仿佛是从 20 年前的程序上抠出来的组件。

为了弥补这点不足,Tkinter 后来引入了一个 ttk 组件作为补充(主要就是简单包装、美化一下),并使用功能更强大的 Combobox 取代了原来的 Listbox,且新增了 LabeledScale(带标签的 Scale)、Notebook(多文档窗口)、Progressbar(进度条)、Treeview(树)等组件。

ttk 作为一个模块被放在 tkinter 包下,使用 ttk 组件与使用普通的 Tkinter 组件并没有多大的区别,只要导入 ttk 模块即可。下面程序示范了如何使用 ttk 组件:

from tkinter import * # 导入ttk from tkinter import ttk class App: def __init__(self, master): self.master = master self.initWidgets() def initWidgets(self): # ttk使用Combobox取代了Listbox # cb = ttk.Combobox(self.master, font=24) # 为Combobox设置列表项 # cb['values'] = ('Python', 'Swift', 'Kotlin') cb = Listbox(self.master, font=24) # 为Listbox设置列表项 for s in ('Python', 'Swift', 'Kotlin'): cb.insert(END, s) cb.pack(side=LEFT, fill=X, expand=YES) # f = ttk.Frame(self.master) f = Frame(self.master) f.pack(side=RIGHT, fill=BOTH, expand=YES) # lab = ttk.Label(self.master, text='我的标签', font=24) lab = Label(self.master, text='我的标签', font=24) lab.pack(side=TOP, fill=BOTH, expand=YES) # bn = ttk.Button(self.master, text='我的按钮') bn = Button(self.master, text='我的按钮') bn.pack() root = Tk() root.title("简单事件处理") App(root) root.mainloop()

上面程序中被注释的代码是使用 ttk 组件的代码,未被注释的代码是直接使用 Tkinter 组件的代码。直接运行上面程序,可以看到如图 1 所示的界面。

图 1 Tkinter 组件的运行界面

如果将上面程序中被注释的代码取消注释,并注释使用 Tkinter 组件的代码,改为使用 ttk 组件,再次运行上面程序,则可以看到如图 2 所示的界面。

图 2 ttk 组件的运行界面

对比两个界面上 Tkinter 的 Button 和 ttk 的 Button,不难发现 ttk 下的 Button 更接近 Windows 7 本地平台的风格,显得更漂亮,这就是 ttk 组件的优势。

你可能感兴趣的:(python中ttk和tkinter_Python Tkinter ttk组件及用法(附带实例))