关于tkinter和ttk的新教程,适用于Python 3

Fresh tutorial on tkinter and ttk for Python 3

我在哪里可以找到最现代的教程来教tkinterttk

在python 3中,tkinter似乎是唯一的方法(不建议使用python 2),而ttk给了我希望使用美观的GUI。


我发现tkdocs教程非常有用。它描述了使用python和Tkinterttk构建Tk接口,并指出了python 2和3之间的区别。它在Perl、Ruby和Tcl中也有示例,因为其目标是教授Tk本身,而不是教授特定语言的绑定。

我并没有从头到尾地把这整件事都讲一遍,只是用了一些主题作为我一直坚持的事情的例子,但它很有指导性,写起来也很舒服。今天,阅读简介和前几个部分,我觉得我将开始完成剩下的部分。

最后,它是最新的,并且网站有一个非常漂亮的外观。他还有许多其他值得查看的页面(小部件、资源、博客)。这家伙做了很多工作,不仅教会了tk,而且提高了人们的理解,那不是它曾经的丑陋野兽。


我建议使用NMT Tkinter 8.5参考。

  • 主题小工具
  • 自定义和创建TTK主题和样式
  • 查找和使用主题
  • 使用和自定义TTK样式
  • TTK元素层

一些示例中使用的模块名是Python2.7中使用的模块名。下面是python 3:link中名称更改的参考

TTK的便利之一是你可以选择一个预先存在的主题,这是应用于TTK小部件的一整套样式。

下面是我为python 3编写的一个示例,它允许您从组合框中选择任何可用的主题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import random
import tkinter
from tkinter import ttk
from tkinter import messagebox

class App(object):

    def __init__(self):
        self.root = tkinter.Tk()
        self.style = ttk.Style()
        available_themes = self.style.theme_names()
        random_theme = random.choice(available_themes)
        self.style.theme_use(random_theme)
        self.root.title(random_theme)

        frm = ttk.Frame(self.root)
        frm.pack(expand=True, fill='both')
    # create a Combobox with themes to choose from
        self.combo = ttk.Combobox(frm, values=available_themes)
        self.combo.pack(padx=32, pady=8)
    # make the Enter key change the style
        self.combo.bind('<Return>', self.change_style)
    # make a Button to change the style
        button = ttk.Button(frm, text='OK')
        button['command'] = self.change_style
        button.pack(pady=8)

    def change_style(self, event=None):
       """set the Style to the content of the Combobox"""
        content = self.combo.get()
        try:
            self.style.theme_use(content)
        except tkinter.TclError as err:
            messagebox.showerror('Error', err)
        else:
            self.root.title(content)

app = App()
app.root.mainloop()

旁注:我注意到在使用Python3.3(而不是2.7)时,有一个"Vista"主题可用。


我建议您阅读文档。它简单而权威,适合初学者。


它并不新鲜,但它很简洁,从我所看到的情况来看,它对python 2和3都有效。