def __init__(self, title='', masterWindow=None, weight=True, minsize=(500, 300), icon=None, **kwargs): """Create a Tk window. title: string to use as title for the windows. master: if not provided, the windows create will be the principal one weight: if true, the first col and row will be configured with weight=1 minsize: a minimum size for height and width icon: if not None, set the windows icon """ if masterWindow is None: Window._root = self self.root = tk.Tk() self._images = {} else: self.root = tk.Toplevel(masterWindow.root) self._images = masterWindow._images self.root.withdraw() self.root.title(title) if weight: configureWeigths(self.root) if not minsize is None: self.root.minsize(minsize[0], minsize[1]) if not icon is None: try: path = findResource(icon) # If path is None --> Icon not found if path is None: # By default, if icon is not found use default scipion one. path = findResource('scipion_bn.xbm') abspath = os.path.abspath(path) self.root.iconbitmap("@" + abspath) except Exception as e: # Do nothing if icon could not be loaded pass self.root.protocol("WM_DELETE_WINDOW", self._onClosing) self._w, self._h, self._x, self._y = 0, 0, 0, 0 self.root.bind("<Configure>", self._configure) self.master = masterWindow setCommonFonts(self) if kwargs.get('enableQueue', False): self.queue = Queue.Queue(maxsize=0) else: self.queue = None
def __init__(self, title='', masterWindow=None, weight=True, minsize=(500, 300), icon=None, **kwargs): """Create a Tk window. title: string to use as title for the windows. master: if not provided, the windows create will be the principal one weight: if true, the first col and row will be configured with weight=1 minsize: a minimum size for height and width icon: if not None, set the windows icon """ if masterWindow is None: Window._root = self self.root = tk.Tk() self._images = {} else: self.root = tk.Toplevel(masterWindow.root) self._images = masterWindow._images self.root.withdraw() self.root.title(title) if weight: configureWeigths(self.root) if not minsize is None: self.root.minsize(minsize[0], minsize[1]) if not icon is None: try: path = findResource(icon) # If path is None --> Icon not found if path is None: # By default, if icon is not found use default scipion one. path = findResource('scipion_bn.xbm') abspath = os.path.abspath(path) self.root.iconbitmap("@" + abspath) except Exception as e: # Do nothing if icon could not be loaded pass self.root.protocol("WM_DELETE_WINDOW", self._onClosing) self._w, self._h, self._x, self._y = 0, 0, 0, 0 self.root.bind("<Configure>", self._configure) self.master = masterWindow setCommonFonts(self) if kwargs.get('enableQueue', False): self.queue = Queue.Queue(maxsize=0) else: self.queue = None
def getImage(imageName, imgDict=None, tkImage=True, percent=100, maxheight=None): """ Search for the image in the RESOURCES path list. """ if imageName is None: return None if imgDict is not None and imageName in imgDict: return imgDict[imageName] if not os.path.isabs(imageName): imagePath = findResource(imageName) else: imagePath = imageName image = None if imagePath: from PIL import Image image = Image.open(imagePath) w, h = image.size newSize = None if percent != 100: # Display image with other dimensions fp = float(percent) / 100.0 newSize = int(fp * w), int(fp * h) elif maxheight and h > maxheight: newSize = int(w * float(maxheight) / h), maxheight if newSize: image.thumbnail(newSize, Image.ANTIALIAS) if tkImage: from PIL import ImageTk image = ImageTk.PhotoImage(image) if imgDict is not None: imgDict[imageName] = image return image
def getImage(imageName, imgDict=None, tkImage=True, percent=100, maxheight=None): """ Search for the image in the RESOURCES path list. """ if imageName is None: return None if imgDict is not None and imageName in imgDict: return imgDict[imageName] if not os.path.isabs(imageName): imagePath = findResource(imageName) else: imagePath = imageName image = None if imagePath: from PIL import Image image = Image.open(imagePath) w, h = image.size newSize = None if percent != 100: # Display image with other dimensions fp = float(percent)/100.0 newSize = int(fp * w), int(fp * h) elif maxheight and h > maxheight: newSize = int(w * float(maxheight)/h), maxheight if newSize: image.thumbnail(newSize, Image.ANTIALIAS) if tkImage: from PIL import ImageTk image = ImageTk.PhotoImage(image) if imgDict is not None: imgDict[imageName] = image return image
def _setIcon(self, icon): if icon is not None: try: path = findResource(icon) # If path is None --> Icon not found if path is None: # By default, if icon is not found use default scipion one. path = findResource(Icon.SCIPION_ICON) abspath = os.path.abspath(path) img = tk.Image("photo", file=abspath) self.root.tk.call('wm', 'iconphoto', self.root._w, img) except Exception as e: # Do nothing if icon could not be loaded pass
def _itemSelected(self, obj): index = obj.getIndex() filename = obj.getFileName() if index: filename = "%03d@%s" % (index, filename) # self.image = xmipp.Image() self.image = ImageHandler()._img try: self.image.readPreview(filename, self.dim) if filename.endswith('.psd'): self.image.convertPSD() self.Z = self.image.getData() except Exception, e: from pyworkflow.gui.matplotlib_image import getPngData self.Z = getPngData(findResource('no-image.png')) dialog.showError("Input particles", "Error reading image <%s>" % filename, self)
def _itemSelected(self, obj): index = obj.getIndex() filename = emlib.image.ImageHandler.fixXmippVolumeFileName(obj) if index: filename = "%03d@%s" % (index, filename) self.image = emlib.image.ImageHandler()._img try: self.image.readPreview(filename, self.dim) if filename.endswith('.psd'): self.image.convertPSD() self.Z = self.image.getData() except Exception as e: from pyworkflow.gui.matplotlib_image import getPngData self.Z = getPngData(pw.findResource('no-image.gif')) dialog.showError("Input particles", "Error reading image <%s>" % filename, self) self.preview.updateData(self.Z)