summaryrefslogtreecommitdiff
path: root/examples/animatedicons.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/animatedicons.py')
-rw-r--r--examples/animatedicons.py155
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_()