Форум сайта python.su
0
Огромное спасибо за объяснение. К сожалению, проблемы с сложившимися стереотипами продолжают блокировать процесс понимания этого простого и удобочитаемого языка. В данный момент пытаюсь постичь магию использования классов, хотябы на примере
class TimerRepeater(object):
self.tmrRead = TimerRepeater("tmrRead", 0.050, self.tmrRead_Tick) self.tmrDisplay = TimerRepeater("tmrDisplay", 0.100, self.tmrDisplay_Tick)
Офлайн
0
Вынужден был отлучится и поэтому не завершил своё предыдущее сообщение.
В принципе какие-то общие механизмы потихоньку становятся понятными. Однако с полным пониманием пока проблемы. Похоже подход был сделан не с той стороны. Проще начать с начала.
И так, наша программа запущена как программа, а не загружена как библиотека. Следовательно, запускается функция RunMain(root), где root = Tix.Tk().
def RunMain(root): global basicExl # Создать PCAN-Basic приложение # basicExl = PCANBasicExample(root) # Запустить приложение / старт цикла # basicExl.loop() # Уничтожение приложения / стоп цикла # basicExl.destroy()
while self.exit < 0:
Офлайн
.
Отредактировано J.R. (Янв. 27, 2016 08:57:06)
Офлайн
0
J.R.Спасибо за разъяснения!
У PCANBasicExample есть метод:def InitializeBasicComponents(self):
…
И вызов этого метода есть в дандерините этого класса:
def __init__(self, parent): # Родительская конфигурация self.m_Parent = parent self.m_Parent.wm_title("PCAN-Basic Example") self.m_Parent.resizable(False,False) self.m_Parent.protocol("WM_DELETE_WINDOW",self.Form_OnClosing) # Конфигурация кадра self.m_Frame =Frame(self.m_Parent) self.m_Frame.grid(row=0, column=0, padx=5, pady=2, sticky="nwes") # Конфигурация примера self.InitializeBasicComponents() self.CenterTheWindow() self.InitializeWidgets() self.ConfigureLogFile() self.SetConnectionStatus(False)
basicExl = PCANBasicExample(root) # где root = Tix.Tk()
self.m_Frame =Frame(self.m_Parent)
Отредактировано eleks (Сен. 11, 2015 10:33:38)
Офлайн
0
eleksВ принципе нашел одноимённые функции wm_title, resizable, protocol в подклассе Tk. Однако, в качестве класса указан Wm, а мне нужен Tix.Tk(). Да, помощь сейчас была бы очень уместна, но форумчане, к сожалению, похоже потеряли к моей проблеме интерес
И что представляет из себя следующий атрибут self.m_Parent.wm_title(“PCAN-Basic Example”)? Это какая-то переменная или вызов функции из библиотеки Tix.Tk()?Аналогичный вопрос с атрибутами self.m_Parent.resizable(False,False) и self.m_Parent.protocol(“WM_DELETE_WINDOW”,self.Form_OnClosing).
Отредактировано eleks (Сен. 11, 2015 14:36:49)
Офлайн
857
eleksВозьми какую-нибудь книжку по питону для самых маленьких. А то ты пытаешься разобраться в устройстве космического корабля, задавая вопросы о том, как держать молоток, что такое гвозь и чем он отличается от шурупа.
Да, помощь сейчас была бы очень уместна
eleksЕсть класс, есть экземпляр класса, есть объект и есть имя, привязанное к объекту. Вот эти понятия элементарные.
Что происходит при создании этого атрибута self.m_Parent = parent? Создается экземпляр из параметра, который в свою очередь является экземпляром библиотеки Tix.Tk()?
self.m_Parent = parent
>>> class A: ... def f(self): ... self.x = 1 ... >>> a = A() >>> a.f() >>> a.x 1 >>>
Отредактировано py.user.next (Сен. 12, 2015 03:18:02)
Офлайн
0
py.user.nextТоже ума не приложу. И зачем только эти форумы нужны, когда столько книжек разных есть?
Вот это всё подробно расписано в книгах по питону, поэтому нет смысла писать здесь всё то, что уже описано десять раз в лучшем виде.
class PCANBasicExample(object): def __init__(self, parent): self.m_Parent = parent ... def RunMain(root): global basicExl basicExl = PCANBasicExample(root) ... root = Tix.Tk() RunMain(root) ...
Отредактировано eleks (Сен. 15, 2015 12:42:16)
Офлайн
88
Даже не смешно.
>>> Tix.Tk()
<Tix.Tk instance at 0x028C43F0>
>>> Tix.Tk
<class Tix.Tk at 0x0296DED8>
>>> help(Tix.Tk)
Help on class Tk in module Tix:
class Tk(Tkinter.Tk, tixCommand)
| Toplevel widget of Tix which represents mostly the main window
| of an application. It has an associated Tcl interpreter.
|
. . .
Офлайн
5
eleks
и список детских вопросов
eleks
1. Понятно, что self.m_Parent атрибут класса. Имеет ли значение вложенность этого атрибута (принадлежность определённой функции)? Или же к этому атрибуту я могу обращаться из любой функции внутри класса?
eleks
2. Что передаётся через параметр parent в функцию def __init__(self, parent)? Экземпляр метода Tix.Tk()?
eleks
3. Где можно почерпнуть информацию о Tix.Tk()?
Отредактировано i.slepov (Сен. 15, 2015 14:27:22)
Офлайн
857
eleksФорумы нужны, чтобы отвечать на вопросы, которых нет в книгах.
Тоже ума не приложу. И зачем только эти форумы нужны, когда столько книжек разных есть?
Офлайн