Где я могу найти самый современный учебник, который учит tkinter
вместе с ttk
tkinter
кажется единственным выходом в Python 3 (не предлагайте Python 2), а ttk
дал мне надежду на красивый GUI.
Где я могу найти самый современный учебник, который учит tkinter
вместе с ttk
tkinter
кажется единственным выходом в Python 3 (не предлагайте Python 2), а ttk
дал мне надежду на красивый GUI.
Я нашел TkDocs учебник, чтобы быть очень полезным. Он описывает построение интерфейсов Tk
с использованием Python и Tkinter
и ttk
и делает заметки о различиях между Python 2 и 3. Он также имеет примеры в Perl, Ruby и Tcl, поскольку цель состоит в том, чтобы научить Tk самостоятельно, а не привязки для определенного языка.
Я не прошел через все это от начала до конца, а использовал только несколько тем в качестве примеров того, что я застрял, но он очень учебный и удобно написан. Сегодня, читая вступительные и первые несколько разделов, я думаю, что я начну работать над остальной частью.
Наконец, это текущий и сайт имеет очень красивый внешний вид. У него также есть куча других страниц, которые стоит проверить (Widgets, Resources, Blog). Этот парень много делает для того, чтобы не только преподавать Tk, но и улучшать понимание людьми, что это не уродливый зверь, который когда-то был.
Я рекомендую 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).
Я рекомендую прочитать документацию . Это просто и авторитетно, и хорошо для новичков.
Это не очень свежо, но это является кратким, и из того, что я видел, допустимо для Python 2 и 3.