Создание собственной программы с помощью tkinter в Python
Создание собственной программы с помощью tkinter в Python может быть интересным и полезным проектом. В этом примере мы рассмотрим процесс создания простой программы для записи и отображения заметок.
Шаг 1: Импорт модуля tkinter
Сначала импортируем модуль `tkinter` и создадим основное окно программы.
import tkinter as tk
root = tk.Tk()
root.title(«Простое приложение для заметок»)
root.geometry(«400×400»)
Шаг 2: Создание виджетов
Теперь создадим необходимые виджеты для нашего приложения. Это будут поле ввода (Entry) для заголовка заметки, текстовая область (Text) для самого текста заметки, кнопка для сохранения заметки и список для отображения сохраненных заметок.
title_label = tk.Label(root, text=»Заголовок заметки»)
title_label.pack()
title_entry = tk.Entry(root, width=50)
title_entry.pack(pady=5)
text_label = tk.Label(root, text=»Текст заметки»)
text_label.pack()
text_area = tk.Text(root, height=10, width=50)
text_area.pack(pady=5)
save_button = tk.Button(root, text=»Сохранить заметку», command=lambda: save_note())
save_button.pack(pady=10)
notes_list_label = tk.Label(root, text=»Сохраненные заметки»)
notes_list_label.pack()
notes_listbox = tk.Listbox(root, width=50, height=10)
notes_listbox.pack(pady=5)
Шаг 3: Функция для сохранения заметки
Теперь напишем функцию `save_note`, которая будет сохранять заголовок и текст заметки, добавлять заголовок в список и очищать поля ввода.
notes = []
def save_note():
title = title_entry.get()
text = text_area.get(«1.0», tk.END).strip()
if title and text:
notes.append({«title»: title, «text»: text})
notes_listbox.insert(tk.END, title)
title_entry.delete(0, tk.END)
text_area.delete(«1.0», tk.END)
Шаг 4: Функция для отображения выбранной заметки
Чтобы пользователь мог просматривать сохраненные заметки, добавим функцию, отображающую текст заметки, когда пользователь выбирает ее из списка.
def show_note(event):
selected_index = notes_listbox.curselection()
if selected_index:
note = notes[selected_index[0]]
text_area.delete(«1.0», tk.END)
text_area.insert(tk.END, note[«text»])
notes_listbox.bind(«<<ListboxSelect>>», show_note)
Шаг 5: Запуск главного цикла приложения
Последний шаг является запуск главного цикла программы, чтобы отобразить наше окно.
root.mainloop()
Полный код приложения
import tkinter as tk
- Создание главного окна
root = tk.Tk()
root.title(«Простое приложение для заметок»)
root.geometry(«400×400») - Виджеты
title_label = tk.Label(root, text=»Заголовок заметки»)
title_label.pack()
title_entry = tk.Entry(root, width=50)
title_entry.pack(pady=5)
text_label = tk.Label(root, text=»Текст заметки»)
text_label.pack()
text_area = tk.Text(root, height=10, width=50)
text_area.pack(pady=5)
save_button = tk.Button(root, text=»Сохранить заметку», command=lambda: save_note())
save_button.pack(pady=10)
notes_list_label = tk.Label(root, text=»Сохраненные заметки»)
notes_list_label.pack()
notes_listbox = tk.Listbox(root, width=50, height=10)
notes_listbox.pack(pady=5)
- Сохраненные заметки
notes = [] - Функция для сохранения заметки
def save_note():
title = title_entry.get()
text = text_area.get(«1.0», tk.END).strip()
if title and text:
notes.append({«title»: title, «text»: text})
notes_listbox.insert(tk.END, title)
title_entry.delete(0, tk.END)
text_area.delete(«1.0», tk.END)
- Функция для отображения заметки
def show_note(event):
selected_index = notes_listbox.curselection()
if selected_index:
note = notes[selected_index[0]]
text_area.delete(«1.0», tk.END)
text_area.insert(tk.END, note[«text»]) - Привязка события выбора заметки к функции отображения
notes_listbox.bind(«<<ListboxSelect>>», show_note) - Запуск главного цикла программы
root.mainloop()
Тест Python. Создание собственного приложения с помощью tkinter модуля. (1)
Заключение: Создание собственной программы с помощью tkinter в Python
Этот пример показывает, как можно сделать простое приложение для сохранения и отображения заметок с помощью модуля `tkinter`. Приложение позволяет вводить заголовки и тексты заметок, сохранять их и просматривать в любой момент. Это базовый проект, который можно расширять и усовершенствовать в соответствии с вашими потребностями.