def get_kernel(self): """ """ kernel = ic_user.icGetRunner() if not kernel: kernel = ickernel.icKernel() return kernel
def __init__(self, parent, id=-1, component=None, logType=0, evalSpace=None, bCounter=False, progressDlg=None): """ Конструктор. @type parent: C{wx.Window} @param parent: Указатель на родительское окно @type id: C{int} @param id: Идентификатор окна @type component: C{dictionary} @param component: Словарь описания компонента @type logType: C{int} @param logType: Тип лога (0 - консоль, 1- файл, 2- окно лога) @param evalSpace: Пространство имен, необходимых для вычисления внешних выражений @type evalSpace: C{dictionary} @type bCounter: C{bool} @param bCounter: Признак отображения в ProgressBar-е. Иногда это не нужно - для создания объектов полученных по ссылки. Т. к. они не учтены при подсчете общего количества объектов. @type progressDlg: C{wx.ProgressDialog} @param progressDlg: Указатель на идикатор создания формы. """ component = util.icSpcDefStruct(self.component_spc, component) icwidget.icSimple.__init__(self, parent, id, component, logType, evalSpace) main_win_parent = None if parent: main_win_parent = parent ic_win.icMainWindow.__init__(self, component['name'], component, Parent_=main_win_parent, Runner_=ic_user.icGetRunner()) # Дополнительный функционал инициализации if component.get('init_expr', None): self.eval_attr('init_expr')
def __init__(self, Parent_, Frames_, Msg_, min=0, max=100, Msg2_=None, min2=None, max2=None, style=0, bAutoIncr=False): """ Конструктор. @type Parent_: C{wx.Window} @param Parent_: Указатель на родительское окно. @type Msg_: C{string} @param Msg_: Сообщение верхнего индикатора. @type min: C{int} @param min: Минимальное значение верхнего индикатора. @type max: C{int} @param max: Максимальное значение верхнего индикатора. @type Msg2_: C{string} @param Msg2_: Сообщение нижнего индикатора. @type min2: C{int} @param min2: Минимальное значение нижнего индикатора. @type max2: C{int} @param max2: Максимальное значение нижнего индикатора. @type style: C{int} @param style: Стиль окна процесса. @type bAutoIncr: C{bool} @param bAutoIncr: Признак автоматического изменения состояния индикаторов. Используется в тех случаях, когда размерность процесса не определена, а показывать чего то надо. """ if Msg2_ is not None: sy = 70 else: sy = 40 if Parent_: self.defBackClr = Parent_.GetBackgroundColour() else: app = ic_user.icGetRunner() if app: Parent_ = app.GetTopWindow() self.defBackClr = app.GetTopWindow().GetBackgroundColour() else: self.defBackClr = wx.SystemSettings.GetColour( wx.SYS_COLOUR_3DFACE) if Parent_ is None: style = wx.STAY_ON_TOP # Instead of calling wx.Dialog.__init__ we precreate the dialog # so we can set an extra style that must be set before # creation, and then we create the GUI object using the Create # method. pre = wx.PreDialog() pre.SetExtraStyle(wx.DIALOG_EX_CONTEXTHELP) pre.Create(Parent_, -1, size=wx.Size(150, sy), style=style) # This next step is the most important, it turns this Python # object into the real wrapper of the dialog (instead of pre) # as far as the wxPython extension is concerned. self.PostCreate(pre) self._ani = [ ic_bmp.icCreateBitmap(frame_file_name) for frame_file_name in Frames_ ] self._cur_ani_state = 0 # Индекс состояния анимации self._max_ani_state = len(Frames_) self._delay = 0.3 self._autoIncr = bAutoIncr if self._ani: self._pic_size = (self._ani[0].GetWidth(), self._ani[0].GetHeight()) else: self._pic_size = (0, 0) self.title = '' self.label = Msg_ self.label2 = Msg2_ self.min = min self.max = max self.value = min self.min2 = min2 self.max2 = max2 self.value2 = min2 # self.indBgrClr = wx.Colour(230, 230, 230) self.indClr = wx.Colour(100, 100, 135) self.indBgrBrush = wx.Brush(self.indBgrClr, wx.SOLID) self.indBrush = wx.Brush(self.indClr, wx.SOLID) self.bgrBrush = wx.Brush(self.defBackClr, wx.SOLID) self.font = icfont.icFont({}) # Высота индикатора self.indH = 15 self.CenterOnScreen() self._count = 0 self._running = True # Признак запущенной функции self._closed = False # Признак закрытия окна self._result_list = None self.old_time = time.clock() self._oSize = self.GetSize() self._oPos = self.GetPosition() self._oPar = None self.timer = wx.FutureCall(1, self.OnTimer, None)
def __init__(self, parent, id, component, logType=0, evalSpace=None, bCounter=False, progressDlg=None): """ Конструктор базового класса пользовательских компонентов. @type parent: C{wx.Window} @param parent: Указатель на родительское окно. @type id: C{int} @param id: Идентификатор окна. @type component: C{dictionary} @param component: Словарь описания компонента. @type logType: C{int} @param logType: Тип лога (0 - консоль, 1- файл, 2- окно лога). @param evalSpace: Пространство имен, необходимых для вычисления внешних выражений. @type evalSpace: C{dictionary} @type bCounter: C{bool} @param bCounter: Признак отображения в ProgressBar-е. Иногда это не нужно - для создания объектов полученных по ссылки. Т. к. они не учтены при подсчете общего количества объектов. @type progressDlg: C{wx.ProgressDialog} @param progressDlg: Указатель на идикатор создания формы. """ component = util.icSpcDefStruct(self.component_spc, component) icwidget.icSimple.__init__(self, parent, id, component, logType, evalSpace) # По спецификации создаем соответствующие атрибуты (кроме служебных атрибутов) lst_keys = [x for x in component.keys() if x.find('__') <> 0] for key in lst_keys: setattr(self, key, component[key]) # ВНИМАНИЕ!!! Сначала нужно создать все сигналы и слоты # Создаем дочерние компоненты if 'child' in component: self.childCreator(bCounter, progressDlg) # !!! Конструктор наследуемого класса !!! # Необходимо вставить реальные параметры конструкора. # На этапе генерации их не всегда можно определить. try: first_signal = filter( lambda item: item.type in ('WxSignal', 'ChangeAttrSignal', 'PostFuncSignal'), self.components.values())[0] except IndexError: io_prnt.outWarning( u'CONNECTION CREATE ERROR! Connection has\'t signal <%s>' % self.name) slot_list = [ item for item in self.components.values() if item.type in ('SimpleSlot', ) ] if not slot_list: io_prnt.outWarning( u'CONNECTION CREATE ERROR! Connection has\'t slots <%s>' % self.name) parentModule.icConnection.__init__(self, first_signal, slot_list) # Регистрируем соединение через ядро kernel = ic_user.icGetRunner() if kernel: io_prnt.outLog( u'>>> Регистрируем соединение first_signal = <%s>, slot_list = <%s>' % (first_signal, slot_list)) kernel.add_connection_lst([self]) else: io_prnt.outLog(u'WARNING! Ядро системы не инициализировано')