Найти - Пользователи
Полная версия: Tkinter и Threading
Начало » GUI » Tkinter и Threading
1 2 3
Strelok-den
4kpt_II
Нуууу, уже получше. Что плохо:1. __init__ нужно всегда ставить первым методом.2. Название l1, QUIT, a, f - не по PEP8.3. Ну не все же элементы интерфейса нужно делать атрибутами… Только те, в которые нужен доступ из других методов. Хотя иногда их можно получить и по-другому: через event или родительский объект.4. Frame.__init__(self, root) - это уже моветон. Лучше super(Application, self).__init__(master).5. Когда Вы создаете объект, то сразу и назначайте его параметры:

1. Ок учту)
2. Как понять?)
3. Хм, точно))
4. брал идею отсюда просто https://docs.python.org/3.1/library/tkinter.html
буду через super тогда)
5. Ок) опять же и доков брал..
6. Это для примера) я уже никогда не использую) после того как назначал переменные так же как и в Tkinter и получал ерунду)
7. А можно ли передавать Кнопку или Лабель в другой класс? для последующего изменения состояния?



4kpt_II
2. Существует стандарт на оформление кода. Называется PEP8. Нужно почитать на досуге
7. Вообще не желательно выносить логику из одного класса. Но если же деваться некуда, то лучше работать на уровне callback функций или вынимать ссылку на объект из event при обработке события.

P.S. Будут вопросы - пишите…
Strelok-den
4kpt_II
P.S. Будут вопросы - пишите…

Появился) насчет super()
сделал как советовали ругается теперь:
    super(Application, self).__init__(master)
TypeError: must be type, not classobj
Добавляю class Application(object):
Ругается:
    super(Application, self).__init__(master=parent)
TypeError: object.__init__() takes no parameters
4kpt_II
Вы были близки

class Application(Tkinter.Frame, object):
Strelok-den
4kpt_II
Вы были близки
)) работает) спасибо)
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