Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » tkinter не хочет запускаться с помощью ООП [RSS Feed]

#1 Дек. 9, 2012 19:02:34

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter не хочет запускаться с помощью ООП

Всем добрый вечер.
Разница в том что в процедурном стиле все работает а в ООП не хочет.

win = Frame()
win.pack()
Label(win, text='Basic demos').pack()
for(key, value) in demos.items():
    Button(win, text=key, command=value).pack(side=TOP, fill=BOTH)
win.mainloop() 



class Demo(Frame):
    def __init__(self, parent=None, **options):
        Frame.__init__(self, parent, **options).pack()
        Label(self, text='Basic demos').pack()
        for(key, value) in demos.items():
            Button(self, text=key, command=value).pack(side=TOP, fill=BOTH)
Demo.mainloop()

Использую Python 3.3

В результате ошибка
Demo.mainloop()
TypeError: mainloop() missing 1 required positional argument: ‘self’
Не пойму почему ругается что отсутствует self



Офлайн

#2 Дек. 9, 2012 19:27:44

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

tkinter не хочет запускаться с помощью ООП

-Demo.mainloop()
+Demo().mainloop()

-Frame.__init__(self, parent, **options).pack()
+Frame.__init__(self, parent, **options)
+self.pack()



Офлайн

#3 Дек. 9, 2012 19:55:35

Saturn
От:
Зарегистрирован: 2012-03-22
Сообщения: 164
Репутация: +  0  -
Профиль   Отправить e-mail  

tkinter не хочет запускаться с помощью ООП

sp3 Спасибо, теперь все работает.



Офлайн

#4 Дек. 9, 2012 21:27:37

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

tkinter не хочет запускаться с помощью ООП

sp3
Высокоинтеллектуальный выопрос.
Я не пользуюсь 3. В моем случае:

+Demo.mainloop() 
-Demo().mainloop()
Правильно?

Заранее спасибо за ответ…



Отредактировано 4kpt (Дек. 9, 2012 21:31:43)

Офлайн

#5 Дек. 10, 2012 07:14:36

sp3
От:
Зарегистрирован: 2010-01-12
Сообщения: 405
Репутация: +  18  -
Профиль   Отправить e-mail  

tkinter не хочет запускаться с помощью ООП

4kpt
Здесь Demo - класс
Demo() - экземпляр этого класса
так что неправильно.



Офлайн

#6 Дек. 10, 2012 10:30:31

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

tkinter не хочет запускаться с помощью ООП

Понял. Просто я предварительно присваиваю экземпляр класса какой-нибуть переменной, а потом выполняю .mainloop. Стало интересно, как это сделать одной строкой. Спасибо.



Офлайн

  • Начало
  • » GUI
  • » tkinter не хочет запускаться с помощью ООП[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version