Подтвердить что ты не робот

Свежий учебник по tkinter и ttk для Python 3

Где я могу найти самый современный учебник, который учит tkinter вместе с ttk

tkinter кажется единственным выходом в Python 3 (не предлагайте Python 2), а ttk дал мне надежду на красивый GUI.

4b9b3361

Ответ 1

Я нашел TkDocs учебник, чтобы быть очень полезным. Он описывает построение интерфейсов Tk с использованием Python и Tkinter и ttk и делает заметки о различиях между Python 2 и 3. Он также имеет примеры в Perl, Ruby и Tcl, поскольку цель состоит в том, чтобы научить Tk самостоятельно, а не привязки для определенного языка.

Я не прошел через все это от начала до конца, а использовал только несколько тем в качестве примеров того, что я застрял, но он очень учебный и удобно написан. Сегодня, читая вступительные и первые несколько разделов, я думаю, что я начну работать над остальной частью.

Наконец, это текущий и сайт имеет очень красивый внешний вид. У него также есть куча других страниц, которые стоит проверить (Widgets, Resources, Blog). Этот парень много делает для того, чтобы не только преподавать Tk, но и улучшать понимание людьми, что это не уродливый зверь, который когда-то был.

Ответ 2

Я рекомендую NMT Tkinter 8.5 ссылку.

В некоторых примерах используются имена модулей, которые используются в Python 2.7.
Вот ссылка для изменения имени в Python 3: ссылка

Одним из удобств ttk является то, что вы можете выбрать уже существующую тему,
это полный набор стилей, применяемых к виджетам ttk.

Вот пример, который я написал (для Python 3), который позволяет вам выбрать любую доступную тему из комбинированного списка:

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()

Примечание: я заметил, что при использовании Python 3.3 доступна тема "vista" (но не 2.7).

Ответ 3

Я рекомендую прочитать документацию . Это просто и авторитетно, и хорошо для новичков.

Ответ 4

Это не очень свежо, но это является кратким, и из того, что я видел, допустимо для Python 2 и 3.