Форум сайта python.su
Здравствуйте, уважаемые программисты!
Изучаю Питон совсем недавно.
Возникла проблема. Есть модуль main из которого создается окно с полем для ввода и кнопки. При нажатии на кнопку надо записать значение из поля для ввода в переменную класса namefile, вызвать функцию из внешнего модуля и в этой функции получить значение переменной. Мои знания не позволили реализовать задачу.
Спасибо!
main.py
from okno import Window window1 = Window(500,500,"Проверка атрибутов") window1.run()
from tkinter import * import test class Window: def __init__(self, width, height, title="Окно программы", resiziable=(False, False)): self.root = Tk() self.root.title(title) self.root.geometry(f"{width}x{height}+200+200") self.root.resizable(resiziable[0], resiziable[1]) self.Entry_namefile = Entry(self.root) self.Entry_namefile.insert(0, "Результат") self.namefile="" def run(self): self.draw_widgets() self.root.mainloop() def draw_widgets(self): self.Entry_namefile.pack(anchor=NW) Button(self.root, text="Начать проверку", command=self.button_action).pack(anchor=NW) def button_action(self): self.namefile=self.Entry_namefile.get() test.pr() def get_name_file(self): return self.namefile
import okno def pr(): c=okno.Window.get_name_file()
Отредактировано jeyson77777 (Ноя. 26, 2022 07:16:35)
Офлайн
Сделай у функции test.pr() аргумент текстовый. И подавай в вызов test.pr(), который находится в button_action(), этот аргумент.
jeyson77777
Изучаю Питон совсем недавно.
jeyson77777Да, тебя ещё много проблем ждёт. Если методом тыка изучаешь, будешь долго изучать. Например, с чего ты взял, что с Entry надо работать напрямую? Сейчас надо у неё переменную строковую присоединять StringVar. И чтобы это узнать, надо читать книжки.
Мои знания не позволили реализовать задачу.
jeyson77777Никаких переменных класса у тебя нет. Тоже надо книжки читать, чтобы это знать. Есть переменные класса, а есть переменные экземпляра класса. И это разные вещи. Вот у тебя только переменные экземпляра есть. Поэтому ты и не можешь доступ к ним получить, потому что просто неправильно всё делаешь.
Доступ к переменной класса окна
Отредактировано py.user.next (Ноя. 26, 2022 09:53:11)
Офлайн