урок 10
parent
58d06387c9
commit
0bc1aa0b61
|
@ -0,0 +1,66 @@
|
||||||
|
Задание:
|
||||||
|
|
||||||
|
|
||||||
|
Написать приложение пайтон, используя библиотеку Tkinter, которое будет выводить одно из рандомных определений из пайтона. К примеру (While - это ... ) и т.д. Сделайте дизайн приложения (к примеру- сделайте заголовок внутри окна). Измените цвет окна.
|
||||||
|
|
||||||
|
Давайте разберем его по шагам:
|
||||||
|
|
||||||
|
|
||||||
|
Импорт библиотек.
|
||||||
|
|
||||||
|
В этом блоке импортируются библиотеки. tkinter используется для создания GUI-приложения, а random используется для выбора случайных определений.
|
||||||
|
|
||||||
|
|
||||||
|
Определения Python:
|
||||||
|
|
||||||
|
definitions = {
|
||||||
|
|
||||||
|
"While": "Цикл 'while' используется для выполнения блока кода, пока условие истинно.",
|
||||||
|
|
||||||
|
"For": "Цикл 'for' используется для итерации по элементам последовательности (например, списку или строке).",
|
||||||
|
|
||||||
|
"If": "Условие 'if' позволяет выполнить определенный блок кода, если условие истинно.",
|
||||||
|
|
||||||
|
"Function": "Функция - это блок кода, который можно вызывать с определенными аргументами.",
|
||||||
|
|
||||||
|
"List": "Список - это упорядоченная коллекция элементов, которая может содержать разные типы данных."
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Функция show_random_definition():
|
||||||
|
|
||||||
|
Эта функция выбирает случайный ключ из словаря definitions, затем очищает текстовое поле definition_text и вставляет в него выбранное определение.
|
||||||
|
|
||||||
|
|
||||||
|
Создание главного окна:
|
||||||
|
|
||||||
|
Этот блок создает главное окно приложения с заголовком "Определения Python".
|
||||||
|
|
||||||
|
|
||||||
|
Изменим цвет фона окна на бирюзовый
|
||||||
|
|
||||||
|
root.configure(bg="#00FFFF")
|
||||||
|
|
||||||
|
|
||||||
|
Создание заголовка.
|
||||||
|
|
||||||
|
Title label - в котором указывает заголовок окна.
|
||||||
|
|
||||||
|
|
||||||
|
Создание текстового поля для определений:
|
||||||
|
|
||||||
|
Это текстовое поле, в котором будут отображаться определения.
|
||||||
|
|
||||||
|
|
||||||
|
Создание кнопки "Показать определение":
|
||||||
|
|
||||||
|
Создается кнопка с названием "Показать определение", и ей назначается функция show_random_definition() для выполнения при нажатии на кнопку.
|
||||||
|
|
||||||
|
|
||||||
|
Запуск главного цикла приложения:
|
||||||
|
|
||||||
|
Этот код запускает главный цикл приложения, который ожидает взаимодействия пользователя с GUI.
|
||||||
|
|
||||||
|
|
||||||
|
Когда пользователь нажимает кнопку "Показать определение", случайное определение из словаря definitions отображается в текстовом поле при помощи функции show_random_definition().
|
|
@ -0,0 +1,65 @@
|
||||||
|
"""
|
||||||
|
Модуль является результатом выполнения практической
|
||||||
|
домашней работы по теме "tkinter num2"
|
||||||
|
|
||||||
|
:copyright: Сергей Ванюшкин <pi3c@yandex.ru>
|
||||||
|
:git: https://git.pi3c.ru/pi3c/StudyRepo_Synergy.git
|
||||||
|
:license: MIT
|
||||||
|
2023г.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from tkinter import *
|
||||||
|
|
||||||
|
|
||||||
|
class PyZen:
|
||||||
|
def __init__(self):
|
||||||
|
self.__root = Tk()
|
||||||
|
self.__root.title = "Определения Python"
|
||||||
|
self.__root.configure(bg="#00FFFF")
|
||||||
|
self.gen_zen()
|
||||||
|
|
||||||
|
self.label = Label(self.__root, text="Дзен Python")
|
||||||
|
self.text = Text(self.__root, wrap=WORD)
|
||||||
|
self.set_text()
|
||||||
|
|
||||||
|
self.btn_get = Button(
|
||||||
|
self.__root, text="Получить мудрость старейшин", command=self.get_shit
|
||||||
|
)
|
||||||
|
self.btn_exit = Button(self.__root, text="Выйти", command=self.exit)
|
||||||
|
|
||||||
|
self.label.pack(padx=20, pady=20)
|
||||||
|
self.text.pack(padx=20, pady=20)
|
||||||
|
self.btn_get.pack()
|
||||||
|
self.btn_exit.pack()
|
||||||
|
mainloop()
|
||||||
|
|
||||||
|
def gen_zen(self):
|
||||||
|
import contextlib
|
||||||
|
import io
|
||||||
|
|
||||||
|
with contextlib.redirect_stdout(echo := io.StringIO()):
|
||||||
|
import this
|
||||||
|
|
||||||
|
self.zen = (echo.getvalue()).split("\n")
|
||||||
|
|
||||||
|
def set_text(self, text=None):
|
||||||
|
self.text.delete("1.0", END)
|
||||||
|
if text is None:
|
||||||
|
self.text.insert("1.0", "Познаватель Дзена\n")
|
||||||
|
self.text.insert("2.0", "Нажмите кнопку и получите мудрость")
|
||||||
|
else:
|
||||||
|
self.text.insert("1.0", "Мудрость дня:\n")
|
||||||
|
self.text.insert("2.0", "\n")
|
||||||
|
self.text.insert("3.0", text + "\n\n")
|
||||||
|
self.text.insert("5.0", "\u00a9" + self.zen[0])
|
||||||
|
|
||||||
|
def get_shit(self):
|
||||||
|
import random
|
||||||
|
|
||||||
|
self.set_text(random.choice(self.zen[2:-1]))
|
||||||
|
|
||||||
|
def exit(self):
|
||||||
|
self.__root.destroy()
|
||||||
|
|
||||||
|
|
||||||
|
app = PyZen()
|
Loading…
Reference in New Issue