Форум сайта python.su
xam1816
Не знаю, правильно ли я вас понял или нет, но вот то что получилось:
import tkinter as tk 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() e.insert(0,"Введите текст") c = tk.Entry(root) c.pack() c.insert(0,"Ответ") b = tk.Button(root, text = "Узнать, панграм ли это",) b.pack() root.mainloop()
Офлайн
анализируйте:
from tkinter import * root = 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 = Entry(root, width = 50) e.pack() def is_pangram(): c = e.get() if c in 'abcdefghijklmnopqrstuvwxyz': True print("да") else: False print("нет") b = Button(root, text="Узнать панаграмм", command = is_pangram); b.pack() root.mainloop()
Офлайн
dement3rТеперь у тебя есть место входа информации и место выхода.
Не знаю, правильно ли я вас понял или нет,
text = объект_откуда_берется_текст.get()
return text
Офлайн
xam1816
Не знаю, примерно думаю, что должно быть вот так, и то это было сделано с помощью моего преподавателя
Мне нужно было чтобы мой текст выводился в лейбле, но я совсем забыл или даже скорее не знал, что нужно писать e.get(), чтобы информация бралась из него, только сегодня на паре понял это. Вы очень помогли мне, спасибо большое, долгих вам лет жизни)
def f(): ggg = e.get() alf = 'abcdefghijklmnopqrstuvwxyz' for text in alf: if not in ggg: l['text'] = 'False' return l['text'] = 'True'
Отредактировано dement3r (Ноя. 10, 2022 17:38:11)
Офлайн
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)
b = tk.Button(root, text = "Узнать, панграмм ли это", command=lambda: process(e, c))
def is_pangramm(text): RU_ALPHABET = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя' for i in RU_ALPHABET: if text.find(i) == -1: return False return True
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()
Офлайн
dement3rТы попытался написать всё и сразу. А писать надо методом отсечений. Написал простую программу, отладил её, она работает; тебе это точно известно и ты знаешь, что ошибок в ней нет. Дальше ты берёшь и пишешь поверх неё дополнительные элементы, которые тебе нужны, и потом с ними то же самое проделываешь; отладил - ошибок нет, всё работает. И после этого на этой рабочей версии начинаешь писать следующие дополнительные элементы и для них проделываешь то же самое всё. Это инкрементальная разработка, она позволяет избавляться от ошибок на ранних этапах, а не сваливать их все в одну большую кучу, а потом сидеть и думать, что пора бы это всё выкидывать, так как оно в тупик зашло. Всегда можно откатиться назад, если что-то не получилось, до рабочей промежуточной версии.
py.user.next
Неужели ошибка заключается только в том, что я просто поторопился?
Отредактировано py.user.next (Ноя. 11, 2022 00:41:06)
Офлайн