Świeży samouczek na temat tkinter i ttk dla Pythona 3 [zamknięty]

Zamknięte. to pytanie nie spełnia wytycznych dotyczących przepełnienia stosu . Obecnie nie przyjmuje odpowiedzi.


Chcesz poprawić to pytanie? Update the pytanie więc to on-topic {[7] } dla przepełnienia stosu.

Zamknięte 6 lat temu .

Popraw to pytanie

Gdzie znajdę najnowszy tutorial, który uczy tkinter razem z ttk?

Tkinter wydaje się jedynym sposobem, aby przejść w Pythonie 3 (nie sugeruj Pythona 2), i ttk dał mi nadzieję na ładny GUI.

Author: nbro, 2011-07-28

4 answers

Tutorial TkDocs okazał się bardzo przydatny. Opisuje on budowę interfejsów Tk za pomocą Pythona oraz Tkinter i ttk i robi notatki o różnicach między Pythonem 2 i 3. Ma również przykłady w Perlu, Ruby i Tcl, ponieważ celem jest nauczenie samego Tk, a nie wiązań dla określonego języka.

Nie przejrzałem całej sprawy od początku do końca, raczej użyłem tylko kilku tematów jako przykładów rzeczy, na których utknąłem, ale jest to bardzo Pouczające i komfortowo napisane. Dzisiaj czytając intro i kilka pierwszych sekcji, myślę, że zacznę pracować nad resztą.

W końcu jest aktualna, a strona ma bardzo ładny wygląd. Ma również kilka innych stron, które warto sprawdzić (Widgety, zasoby, Blog). Ten facet robi wiele, aby nie tylko nauczyć Tk, ale także poprawić ludziom zrozumienie, że to nie jest brzydka bestia, jaką kiedyś była.

 52
Author: Todd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-18 15:03:38

Polecam NMT Tkinter 8.5 reference .

Nazwy modułów używane w niektórych przykładach to nazwy używane w Pythonie 2.7.
Oto odniesienie do zmian nazw w Pythonie 3: link

Jeden z wygody ttk polega na tym, że można wybrać wcześniejtheme ,
jest to pełny zestaw stylów zastosowanych do widżetów ttk .

Oto przykład, który napisałem (dla Pythona 3), który pozwala wybrać dowolny dostępny motyw z Combobox :

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

Uwaga: zauważyłem, że istnieje motyw 'vista' dostępny podczas korzystania z Pythona 3.3 (ale nie 2.7).

 20
Author: Honest Abe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-07 22:13:42

Polecam lekturę dokumentacji . Jest prosty i autorytatywny i dobry dla początkujących.

 3
Author: vy32,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-06 10:44:12

To nie jest naprawdę świeże, ale to jest zwięzłe, a z tego co widziałem ważne dla Pythona 2 i 3.

 0
Author: Carel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-04 17:09:22