Python 3.x 关于tkinter和ttk for Python 3的新教程

Python 3.x 关于tkinter和ttk for Python 3的新教程,python-3.x,tkinter,ttk,Python 3.x,Tkinter,Ttk,我在哪里可以找到最现代的教程,与您一起授课 Tkinter似乎是Python3中的唯一方法,但不要建议使用Python2,ttk给了我对美观GUI的希望。我发现该教程非常有用。它描述了使用Python、Tkinter和ttk构建Tk接口,并说明了Python 2和3之间的区别。它还有Perl、Ruby和Tcl中的示例,因为目标是教授Tk本身,而不是特定语言的绑定 我并没有从头到尾通读整件事,只是用了一些主题作为我一直坚持的东西的例子,但它非常有指导性,写得很舒服。今天读了介绍和前几节,我想我会开

我在哪里可以找到最现代的教程,与您一起授课

Tkinter似乎是Python3中的唯一方法,但不要建议使用Python2,ttk给了我对美观GUI的希望。

我发现该教程非常有用。它描述了使用Python、Tkinter和ttk构建Tk接口,并说明了Python 2和3之间的区别。它还有Perl、Ruby和Tcl中的示例,因为目标是教授Tk本身,而不是特定语言的绑定

我并没有从头到尾通读整件事,只是用了一些主题作为我一直坚持的东西的例子,但它非常有指导性,写得很舒服。今天读了介绍和前几节,我想我会开始完成剩下的部分

最后,它是最新的,网站有一个非常好的外观。他还有一堆其他的页面,这些页面值得查看小部件、资源和博客。这家伙不仅在教授Tk方面做了很多工作,而且还提高了人们的认识,使人们认识到Tk不再像以前那样丑陋。

它不是很新鲜,但很简洁,而且从我所看到的情况来看,Python2和Python3都是有效的。

我推荐它

一些示例中使用的模块名是Python 2.7中使用的模块名。 以下是Python 3中名称更改的参考:

其中一个便利是你可以选择一个先存在的, 这是应用于小部件的一整套应用程序

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


旁注:我注意到,在使用Python3.3而不是2.7时,有一个“vista”主题可用。

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

如果Python 2库没有移植到Python 3,那么让我们将Python 2转换为Python 3。。。。。。。。从uuu future uuu导入unicode文字、除法、打印函数等@Jbernardo,Tkinter已经不像以前那么糟糕了,你可以用它制作非常好的GUI。它比以前的版本更好地使用了系统的控件和主题。您可能需要使用一些边距和填充来获得更好的间距。这是PyQt一开始就做得更好的一件事。PyQt也是一个很好的库和PyGTK,但是你仍然可以用Tkinter生成很好的界面。@JBernado:丑恶是主观的,并且有点脱离了现代tk和主题小部件。另外,坦率地说,大多数应用不需要太多的视觉刺激——功能性和/或开发的易用性往往是驱动因素。@BlaXpirit:移植到Python 3是个好主意。那样做!但这比你说的要复杂得多。来帮忙!建议PyQt反对Tkinter就像建议Oracle反对Sqlite一样。关于ttkOh yikers一句话也没有,忽略了这一部分,尽管从我所看到的bit来看,它们是相当可互换的。NMT参考是一个极好的资源。每当我使用tkinterNMT时,我都会保持tkinter打开,因为tkinterNMT似乎已经停止托管tkinter引用。我对本教程的看法是,本教程中的示例看起来很丑,因为没有更好的词。如果有人想消除传统知识应用程序看起来不好的神话,难道不应该教ppl如何正确使用它吗?
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()