xam1816
объект_откуда_берется_текст -> алгоритм работы с этим объектом -> текст.
def get_text_from_entry(entry):
text = entry.get()
return text
xam1816
(объект_который_показывает_текст, текст_для вывода) -> алгоритм работы с этой информацией -> None(нулевая информация тоже информация)
def show_text_in_entry(entry, text):
entry.delete(0, 'end')
entry.insert(0, text)
в следующей функции я их объединяю
def process(input_obj, out_obj):
text = get_text_from_entry(input_obj)
show_text_in_entry(out_obj, text)
эти функции живут сами по себе, им все-равно на твое окно и вообще на твою программу.
далее привязываем сигнал с кнопки, вызвать функцию, которая вызовет функцию process(e, c) - где e и с соответственно объекты tkinter.Entry.
b = tk.Button(root, text = "Узнать, панграмм ли это", command=lambda: process(e, c))
вот основа программы, получить что-то на вход, и выдать что-то на выход. В данном случае это информация со входа без изменения идет на выход
теперь нужна функция
текст -> алгоритм определения панграмм -> True/False
def is_pangramm(text):
RU_ALPHABET = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'
for i in RU_ALPHABET:
if text.find(i) == -1:
return False
return True
теперь я могу в зависимости от информации True/False в функции process изменить какую информацию вывести на выход
def process(input_obj, out_obj):
text = get_text_from_entry(input_obj)
answer = is_pangramm(text)
answers = {True: 'is_pangramm',
False: 'not_pangramm'}
show_text_in_entry(out_obj, answers[answer])
весь код
import tkinter as tk
def get_text_from_entry(entry):
text = entry.get()
return text
def show_text_in_entry(entry, text):
entry.delete(0, 'end')
entry.insert(0, text)
def process(input_obj, out_obj):
text = get_text_from_entry(input_obj)
answer = is_pangramm(text)
answers = {True: 'is_pangramm',
False: 'not_pangramm'}
show_text_in_entry(out_obj, answers[answer])
def is_pangramm(text):
RU_ALPHABET = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'
for i in RU_ALPHABET:
if text.find(i) == -1:
return False
return True
root = tk.Tk()
w = root.winfo_screenwidth()
h = root.winfo_screenheight()
w = w // 2
h = h // 2
w = w - 200
h = h - 200
root.geometry('400x400+{}+{}'.format(w, h))
root.title("Главное окно")
e = tk.Entry(root)
e.pack()
c = tk.Entry(root)
c.pack()
c.insert(0,"Ответ")
b = tk.Button(root, text = "Узнать, панграм ли это", command=lambda: process(e, c))
b.pack()
root.mainloop()
имена переменных нужно давать так чтобы сторонний человек, прочитав его понял что внутри переменной или назначение, в коде окна не менял ваши названия, измените так чтобы было понятно для чего они