Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 18, 2017 08:57:52

Grinvel
Зарегистрирован: 2017-12-11
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП и работа с файлами

Здравствуйте, пишу приложение с графическим интерфейсом по удалению лексем из файла.
Возникла проблема с чтением данных из файла и их записью в текстовое поле.

 import tkinter as tk
from tkinter.filedialog import *
import fileinput
class Main(tk.Frame):
    def __init__(self, root):
        super().__init__(root)
        self.init_main()
        
    def init_main(self):
        frOrigin = tk.Frame(root,width=260,height=200)
        butFile1 = tk.Button(frOrigin,
                             text="Загрузить",width=10,font="Arial 10 bold",
                             command=self.openFile1)
        textArea1 = tk.Text(frOrigin,
                            width=35,height=18,font="Arial 10")
        scrollOriginX = tk.Scrollbar(frLeksem,
                                     command=textArea1.xview())
        scrollOriginY = tk.Scrollbar(frLeksem,
                                     command=textArea1.yview())
        textArea1.configure(xscrollcommand=scrollOriginX.set)
        textArea1.configure(yscrollcommand=scrollOriginY.set)
    def openFile1(self):
        op = askopenfilename()
        for text in fileinput.input(op):
            self.textArea1.insert(tk.END,text)
На строке записи из файла возникает ошибка: AttributeError: ‘Main’ object has no attribute ‘textArea1’
Подскажите, в чём может быть дело?

Офлайн

#2 Дек. 18, 2017 11:24:32

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

ООП и работа с файлами

Grinvel
Подскажите, в чём может быть дело?
Дело в том, что вы не знаете, зачем нужен параметр self



Офлайн

#3 Дек. 18, 2017 15:11:31

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

ООП и работа с файлами

Вопрос:
“ЗАЧЕМ НАСЛЕДОВАТЬСЯ ОТ TK.FRAME”???



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#4 Дек. 18, 2017 16:38:26

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

ООП и работа с файлами

DamMercul
Вопрос:
“ЗАЧЕМ НАСЛЕДОВАТЬСЯ ОТ TK.FRAME”???
Это же ваш код, почему вы нас спрашиваете?
Я могу только догадываться, что это делается для группировки всего остального что идет в init_main() внутри Main а не гдето еще, хотя по вашему коду этого не скажешь.
В любом случае на запись из файла это никак не влияет.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Дек. 18, 2017 16:39:22)

Офлайн

#5 Дек. 18, 2017 17:44:21

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

ООП и работа с файлами

PEHDOM
В любом случае на запись из файла это никак не влияет.
На запись файла вдияет то, что товарищь пытается вызвать атрибут объекта self.textArea1.insert, но он не сделал эту переменную атрибутом объекта textArea1 = tk.Text



Офлайн

#6 Дек. 18, 2017 18:53:45

Grinvel
Зарегистрирован: 2017-12-11
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП и работа с файлами

PEHDOM
Это же ваш код, почему вы нас спрашиваете?
Ники читать иногда полезно
FishHook
Дело в том, что вы не знаете, зачем нужен параметр self
Хотелось бы более внятную причину, нежели указание на глупость автора

Офлайн

#7 Дек. 19, 2017 09:32:44

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

ООП и работа с файлами

Grinvel
Хотелось бы более внятную причину, нежели указание на глупость автора
ну вам же ответили, вы пытаетесь сделать self.textArea1.insert() а самого self.textArea1 не существует, вот и получаете АтрибутЕррор.

Grinvel
Ники читать иногда полезно
о млин, не заметил, эти абстрактные картинки на аватарках сибвают с толку..



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version