diff options
Diffstat (limited to 'examples/animatedicons.py')
-rw-r--r-- | examples/animatedicons.py | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/examples/animatedicons.py b/examples/animatedicons.py deleted file mode 100644 index 5a5cad6..0000000 --- a/examples/animatedicons.py +++ /dev/null @@ -1,155 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 -# /*########################################################################## -# -# Copyright (c) 2016-2017 European Synchrotron Radiation Facility -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -# -# ###########################################################################*/ -""" -Display available project icons using Qt. -""" -from silx.gui import qt -import silx.gui.icons -import functools - - -class AnimatedToolButton(qt.QToolButton): - """ToolButton which support animated icons""" - - def __init__(self, parent=None): - super(AnimatedToolButton, self).__init__(parent) - self.__animatedIcon = None - - def setIcon(self, icon): - if isinstance(icon, silx.gui.icons.AbstractAnimatedIcon): - self._setAnimatedIcon(icon) - else: - self._setAnimatedIcon(None) - super(AnimatedToolButton, self).setIcon(icon) - - def _setAnimatedIcon(self, icon): - if self.__animatedIcon is not None: - self.__animatedIcon.unregister(self) - self.__animatedIcon.iconChanged.disconnect(self.__updateIcon) - self.__animatedIcon = icon - if self.__animatedIcon is not None: - self.__animatedIcon.register(self) - self.__animatedIcon.iconChanged.connect(self.__updateIcon) - i = self.__animatedIcon.currentIcon() - else: - i = qt.QIcon() - super(AnimatedToolButton, self).setIcon(i) - - def __updateIcon(self, icon): - super(AnimatedToolButton, self).setIcon(icon) - - def icon(self): - if self.__animatedIcon is not None: - return self.__animatedIcon - else: - return super(AnimatedToolButton, self).icon() - - -class AnimatedIconPreview(qt.QMainWindow): - - def __init__(self, *args, **kwargs): - qt.QMainWindow.__init__(self, *args, **kwargs) - - widget = qt.QWidget(self) - self.iconPanel = self.createIconPanel(widget) - self.sizePanel = self.createSizePanel(widget) - - layout = qt.QVBoxLayout(widget) - layout.addWidget(self.sizePanel) - layout.addWidget(self.iconPanel) - layout.addStretch() - self.setCentralWidget(widget) - - def createSizePanel(self, parent): - group = qt.QButtonGroup() - group.setExclusive(True) - panel = qt.QWidget(parent) - panel.setLayout(qt.QHBoxLayout()) - - buttons = {} - for size in [16, 24, 32]: - button = qt.QPushButton("%spx" % size, panel) - button.clicked.connect(functools.partial(self.setIconSize, size)) - button.setCheckable(True) - panel.layout().addWidget(button) - group.addButton(button) - buttons[size] = button - - self.__sizeGroup = group - buttons[24].setChecked(True) - return panel - - def createIconPanel(self, parent): - panel = qt.QWidget(parent) - layout = qt.QVBoxLayout() - panel.setLayout(layout) - - self.tools = [] - - # wait icon - icon = silx.gui.icons.getWaitIcon() - tool = AnimatedToolButton(panel) - tool.setIcon(icon) - tool.setText("getWaitIcon") - tool.setToolButtonStyle(qt.Qt.ToolButtonTextBesideIcon) - self.tools.append(tool) - - icon = silx.gui.icons.getAnimatedIcon("process-working") - tool = AnimatedToolButton(panel) - tool.setIcon(icon) - tool.setText("getAnimatedIcon") - tool.setToolButtonStyle(qt.Qt.ToolButtonTextBesideIcon) - self.tools.append(tool) - - icon = silx.gui.icons.MovieAnimatedIcon("process-working", self) - tool = AnimatedToolButton(panel) - tool.setIcon(icon) - tool.setText("MovieAnimatedIcon") - tool.setToolButtonStyle(qt.Qt.ToolButtonTextBesideIcon) - self.tools.append(tool) - - icon = silx.gui.icons.MultiImageAnimatedIcon("process-working", self) - tool = AnimatedToolButton(panel) - tool.setIcon(icon) - tool.setText("MultiImageAnimatedIcon") - tool.setToolButtonStyle(qt.Qt.ToolButtonTextBesideIcon) - self.tools.append(tool) - - for t in self.tools: - layout.addWidget(t) - - return panel - - def setIconSize(self, size): - for tool in self.tools: - tool.setIconSize(qt.QSize(size, size)) - - -if __name__ == "__main__": - app = qt.QApplication([]) - window = AnimatedIconPreview() - window.setVisible(True) - app.exec_() |