Teema “Graafiline liides (Tkinter, Custom Tkinter, jne)”
Eesti keel:
Tkinter – GUI loomine
Mõiste: Pythoni sisseehitatud moodul graafiliste liideste loomiseks (tkinter).
Põhitõed:
- Akna loomine: aken = tk.Tk(), seaded: aken.title(), aken.geometry().
- Käivitus: aken.mainloop().
Vidinad:
- Label: Tekst (tk.Label(aken, text=”Tekst”)).
- Button: Nupp (tk.Button(aken, text=”Vajuta”, command=funktsioon)).
- Entry: Sisestusväli (tk.Entry(aken)).
- Text: Mitmerealine tekst (tk.Text(aken)).
- Checkbutton: Märkeruut (tk.Checkbutton(aken, variable=var)).
- Listbox: Valikuloend.
Paigutusmeetodid:
- pack(): Järjestikune.
- grid(): Tabel (row, column).
- place(): Koordinaatidega (x, y).
Sündmused (bind):
- <Button-1>: Vasak hiireklõps.
- <Key>: Klahvivajutus.
- <Motion>: Hiire liikumine.
Näide: aken.bind(“<Key>”, lambda event: print(event.char)).
Näide: Vorm
import tkinter as tk
def tervita():
silt.configure(text=f"Tere, {sisestus.get()}!")
aken = tk.Tk()
aken.title("Tervitusvorm")
tk.Label(aken, text="Sisesta nimi:").pack()
sisestus = tk.Entry(aken)
sisestus.pack()
tk.Button(aken, text="Tervita", command=tervita).pack()
silt = tk.Label(aken)
silt.pack()
aken.mainloop()
CustomTkinter
Paigaldus: pip install customtkinter.
Seaded: set_appearance_mode(“Light/Dark/System”), set_default_color_theme(“blue”).
Vidinad:
- CTkLabel: Tekst.
- CTkButton: Nupp.
- CTkEntry: Sisestusväli.
- CTkTextbox: Mitmerealine tekst.
- CTkCheckBox: Märkeruut.
- CTkSwitch: Lüliti.
- CTkSlider: Liugur.
- CTkProgressBar: Edenemisriba.
- CTkOptionMenu: Rippmenüü.
- CTkFrame: Konteiner.
Näide sakidega:
import customtkinter as ctk
app = ctk.CTk()
tabs = ctk.CTkTabview(app)
tabs.add("Pealeht")
tabs.add("Seaded")
label = ctk.CTkLabel(tabs.tab("Pealeht"), text="Tere tulemast!")
label.pack()
slider = ctk.CTkSlider(tabs.tab("Seaded"), from_=0, to=1)
slider.pack()
app.mainloop()
Töö failidega:
- Salvestamine: filedialog.asksaveasfilename().
- Avamine: filedialog.askopenfilename().
- Teavitused: messagebox.showinfo().
Vene keel:
Tkinter – Создание GUI
Определение: Встроенный модуль Python для создания графических интерфейсов (tkinter).
Основы:
- Создание окна: aken = tk.Tk(), настройка: aken.title(), aken.geometry().
- Запуск: aken.mainloop().
Виджеты:
- Label: Текст (tk.Label(aken, text=”Текст”)).
- Button: Кнопка (tk.Button(aken, text=”Нажми”, command=функция)).
- Entry: Поле ввода (tk.Entry(aken)).
- Text: Многострочный текст (tk.Text(aken)).
- Checkbutton: Чекбокс (tk.Checkbutton(aken, variable=var)).
- Listbox: Список с выбором.
Методы размещения:
- pack(): Последовательное.
- grid(): Табличное (row, column).
- place(): По координатам (x, y).
События (bind):
- <Button-1>: Левый клик мыши.
- <Key>: Нажатие клавиши.
- <Motion>: Движение мыши.
Пример: aken.bind(“<Key>”, lambda event: print(event.char)).
Пример: Форма
import tkinter as tk
def tervita():
silt.configure(text=f"Привет, {sisestus.get()}!")
aken = tk.Tk()
aken.title("Форма приветствия")
tk.Label(aken, text="Введите имя:").pack()
sisestus = tk.Entry(aken)
sisestus.pack()
tk.Button(aken, text="Поприветствовать", command=tervita).pack()
silt = tk.Label(aken)
silt.pack()
aken.mainloop()
CustomTkinter
Установка: pip install customtkinter.
Настройки: set_appearance_mode(“Light/Dark/System”), set_default_color_theme(“blue”).
Виджеты:
- CTkLabel: Текст.
- CTkButton: Кнопка.
- CTkEntry: Поле ввода.
- CTkTextbox: Многострочный текст.
- CTkCheckBox: Чекбокс.
- CTkSwitch: Переключатель.
- CTkSlider: Ползунок.
- CTkProgressBar: Индикатор прогресса.
- CTkOptionMenu: Выпадающий список.
- CTkFrame: Контейнер.
Пример с вкладками:
import customtkinter as ctk
app = ctk.CTk()
tabs = ctk.CTkTabview(app)
tabs.add("Главная")
tabs.add("Настройки")
label = ctk.CTkLabel(tabs.tab("Главная"), text="Добро пожаловать!")
label.pack()
slider = ctk.CTkSlider(tabs.tab("Настройки"), from_=0, to=1)
slider.pack()
app.mainloop()
Работа с файлами:
- Сохранение: filedialog.asksaveasfilename().
- Открытие: filedialog.askopenfilename().
- Уведомления: messagebox.showinfo().