Найти - Пользователи
Полная версия: Доступ к переменной класса окна
Начало » Python для новичков » Доступ к переменной класса окна
1
jeyson77777
Здравствуйте, уважаемые программисты!
Изучаю Питон совсем недавно.
Возникла проблема. Есть модуль main из которого создается окно с полем для ввода и кнопки. При нажатии на кнопку надо записать значение из поля для ввода в переменную класса namefile, вызвать функцию из внешнего модуля и в этой функции получить значение переменной. Мои знания не позволили реализовать задачу.
Спасибо!

main.py
 from okno import Window
window1 = Window(500,500,"Проверка атрибутов")
window1.run()

Okno.py
 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

test.py
 import okno
def pr():
    c=okno.Window.get_name_file()
py.user.next
Сделай у функции test.pr() аргумент текстовый. И подавай в вызов test.pr(), который находится в button_action(), этот аргумент.

jeyson77777
Изучаю Питон совсем недавно.
jeyson77777
Мои знания не позволили реализовать задачу.
Да, тебя ещё много проблем ждёт. Если методом тыка изучаешь, будешь долго изучать. Например, с чего ты взял, что с Entry надо работать напрямую? Сейчас надо у неё переменную строковую присоединять StringVar. И чтобы это узнать, надо читать книжки.

То есть в Entry агрегируется строковая переменная StringVar и потом с этой переменной ты и работаешь. А у этой переменной как раз и есть методы set() и get(). Там не надо никакой insert() в позицию делать.

jeyson77777
Доступ к переменной класса окна
Никаких переменных класса у тебя нет. Тоже надо книжки читать, чтобы это знать. Есть переменные класса, а есть переменные экземпляра класса. И это разные вещи. Вот у тебя только переменные экземпляра есть. Поэтому ты и не можешь доступ к ним получить, потому что просто неправильно всё делаешь.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB