def SetNodeImg(self, Img_, ImgIdx_=-1): """ Добавить картинку компонента в список образов. @param Img_: Имя файла образа компонента или сам образ. @param ImgIdx_: Указание на какое место поместить картинку. @return: Возвращает индекс соответствующий этому образу. """ # Заменять картинку в списке не надо if ImgIdx_ < 0: # Добавить в список образ if isinstance(Img_, str): # Указание файла return self._img_lst.Add(ic_bmp.createBitmap(Img_)) elif issubclass(Img_.__class__, wx.Bitmap): # Указание непосредственно картинки return self._img_lst.Add(Img_) # Надо заменить картинку на ImgIdx_ else: # Заменить в списке образ if isinstance(Img_, str): # Указание файла return self.ReplaceImg(ImgIdx_, ic_bmp.createBitmap(Img_)) elif issubclass(Img_.__class__, wx.Bitmap): # Указание непосредственно картинки return self.ReplaceImg(ImgIdx_, Img_) return -1
def addImg(self, sImgFileName=None): """ Добавить новый образ в библиотеку. """ if self._img_lib_res.isEmpty(): ic_dlg.icMsgBox(u'ОШИБКА', u'Не определена библиотека образов!', self.getObject()) return None dlg = self.GetNameObj('ImgLibDlg') if sImgFileName is None: sImgFileName = ic_dlg.icImageDlg(dlg, self._img_dir) # Сохранить выбранную папку как папку картинок self.setImgDir(ic_file.DirName(sImgFileName)) self.saveImgDir() if sImgFileName: # Серилизовать и добавить образ self._img_lib_res.addImg(sImgFileName) self._img_lib_res.saveImgLib() # Добавить в словарь образов img_name = ic_file.SplitExt(ic_file.BaseName(sImgFileName))[0] # Заменить все минусы на подчеркивание # иначе в генерирумом фалйе будут имена объектов с минусами (SyntaxisError) img_name = img_name.replace('-', '_') img = ic_bmp.createBitmap(sImgFileName) self._img_dict[img_name] = img return img_name return None
def SetImage(self, Image_): """ Функция установки образов пункта меню. @param Image_: имя файла образа (BMP). """ try: item_kind = self.GetKind() # для разделителя нельзя установить картинку if item_kind == wx.ITEM_SEPARATOR: return if Image_ and type(Image_) in (str, unicode): eval_space = self.context or ic.utils.util.InitEvalSpace( {'MENUITEM': self}) ret, img = ic.utils.util.ic_eval(Image_, evalSpace=eval_space) if not ret: img = Image_ else: img = Image_ if not img: return elif isinstance(img, str): # Задается имя файла образа img = ic_bmp.createBitmap(img) if img and (item_kind == wx.ITEM_CHECK or item_kind == wx.ITEM_NORMAL): # ВНИМАНИЕ: # Картинки необходимо устанавливать до присоединения # пункта к меню. Иначе она не будет отображаться! self.SetBitmap(img) except: io_prnt.outErr(u'Ошибка установки образа для пункта меню <%s>!' % Image_) return
def _get_bitmap(self, id, component, indx, push_indx=-1, dis_indx=-1): """ Возвращает картинки инструмента. """ if self.image_list: if indx < self.image_list.GetImageCount(): bmp = self.image_list.GetBitmap(indx) else: bmp = None if bmp is None: bmp = common.imgEdtTBTool push_bmp, dis_bmp = wx.NullBitmap, wx.NullBitmap if push_indx >= 0: push_bmp = self.image_list.GetBitmap(push_indx) if dis_indx >= 0: dis_bmp = self.image_list.GetBitmap(dis_indx) return bmp, push_bmp, dis_bmp # Активная картинка bitmap = util.getICAttr(component['bitmap'], self.evalSpace, msg='ERROR') if not (bitmap and issubclass(bitmap.__class__, wx.Bitmap)): bitmap = ic_bmp.createBitmap(component['bitmap']) if not bitmap: bitmap = common.imgEdtImage # Неактивная картинка dis_bitmap = util.getICAttr(component['disabledBitmap'], self.evalSpace, msg='ERROR') if not (dis_bitmap and issubclass(bitmap.__class__, wx.Bitmap)): dis_bitmap = ic_bmp.createBitmap(component['disabledBitmap']) if not dis_bitmap: dis_bitmap = wx.NullBitmap # Картинка в нажатом состоянии push_bitmap = util.getICAttr('pushedBitmap', self.evalSpace, msg='ERROR') if not (push_bitmap and issubclass(push_bitmap.__class__, wx.Bitmap)): push_bitmap = ic_bmp.createBitmap(component['pushedBitmap']) if not push_bitmap: push_bitmap = wx.NullBitmap return bitmap, push_bitmap, dis_bitmap
def __init__(self, *args, **kwargs): """ Конструктор """ icWMSCellShape.__init__(self, *args, **kwargs) if self.bmp is None: bmp_filename = os.path.join(DEFAULT_IMG_DIR, 'box.png') self.setBitmap(ic_bmp.createBitmap(bmp_filename))
def __init__(self, GraphFile_=''): """ Конструктор. @param GraphFile_: Имя графического файла, отображаемого в окне. """ try: bmp = ic_bmp.createBitmap(GraphFile_) wx.SplashScreen.__init__( self, bmp, wx.SPLASH_CENTRE_ON_SCREEN | wx.SPLASH_TIMEOUT, SPLASH_DELAY, None, -1, wx.DefaultPosition, wx.DefaultSize, wx.SIMPLE_BORDER | wx.FRAME_NO_TASKBAR | wx.STAY_ON_TOP) except: io_prnt.outErr(u'Ошибка создания всплывающего окошка.')
def setBackgound(self, bmp=None): """ Установить фон. @param bmp: Объект wx.Bitmap фона. Может задаваться именем файла картинки. """ if isinstance(bmp, str): log.debug(u'Фон задается именем файла <%s>' % bmp) # Картинка задается именем файла if os.path.exists(bmp): bmp = ic_bmp.createBitmap(bmp) else: # Возможно картинка задается именем файла из библиотеки bmp = ic_bmp.createLibraryBitmap(bmp) self.SetBitmap(bmp)
def __init__(self, Parent_, Msg_, Frames_, style=0): """ Конструктор. """ 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, 34), 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) from ic.bitmap import ic_bmp self._ani = [ ic_bmp.createBitmap(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._picture = wx.StaticBitmap(self, -1, self._ani[0]) self._pic_size = (self._ani[0].GetWidth(), self._ani[0].GetHeight()) self.msg = msg = wx.StaticText(self, -1, Msg_) self._lastTime = time.clock() sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.Add(self._picture, 0, wx.CENTRE, 5) sizer.Add(msg, 0, wx.CENTRE, 5) self.SetSizer(sizer) self.SetAutoLayout(True) sizer.Fit(self) self.CenterOnScreen() self._running = True # Признак запущенной функции self._closed = False # Признак закрытия окна self._result_list = None self.Bind(wx.EVT_UPDATE_UI, self.OnCheckClose)
def setBackgroundBmp(self, background_bitmap=None): """ Установить картинку фона. @param background_bitmap: Объект картинки wx.Bitmap. Может задаваться прсто именем файла. """ if isinstance(background_bitmap, wx.Bitmap): self.bg_bmp = background_bitmap elif type(background_bitmap) in (str, unicode): # Задается именем файла bmp = ic_bmp.createBitmap(background_bitmap) self.bg_bmp = bmp elif background_bitmap is None: self.bg_bmp = None else: log.warning(u'Не обрабатываемый тип входных данных <%s>' % type(background_bitmap))
def SetPageImg(self, Image_, NPage_): """ Установить картинку у страницы главного органайзера. @param Image_: Имя файла образа. @param NPage_: Номер страницы. """ try: if Image_ not in self._img_name: # Создание образа img = ic_bmp.createBitmap(Image_, False) if img is None: img = wx.ArtProvider_GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER, (16, 16)) # Добавление образа img_idx = self._img_list.Add(img) # Запомнить индекс self._img_name[Image_] = img_idx else: img_idx = self._img_name[Image_] return self.SetPageImage(NPage_, img_idx) except: io_prnt.outErr(u'Ошибка установки картинки страницы')