E5Gui/E5ToolBox.py

changeset 55
b5c84934de9c
child 791
9ec2ac20e54e
diff -r 31463df17fd5 -r b5c84934de9c E5Gui/E5ToolBox.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/E5Gui/E5ToolBox.py	Wed Jan 13 18:53:58 2010 +0000
@@ -0,0 +1,102 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2008 - 2010 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a horizontal and a vertical toolbox class.
+"""
+
+from PyQt4.QtGui import QToolBox, QTabWidget
+
+from .E5TabWidget import E5TabWidget
+
+class E5VerticalToolBox(QToolBox):
+    """
+    Class implementing a ToolBox class substituting QToolBox to support wheel events.
+    """
+    def __init__(self, parent = None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        QToolBox.__init__(self, parent)
+    
+    def wheelEvent(self, event):
+        """
+        Protected slot to support wheel events.
+        
+        @param reference to the wheel event (QWheelEvent)
+        """
+        index = self.currentIndex()
+        if event.delta() > 0:
+            index -= 1
+        else:
+            index += 1
+        if index < 0:
+            index = self.count() - 1
+        elif index == self.count():
+            index = 0
+        
+        self.setCurrentIndex(index)
+        
+        event.accept()
+
+class E5HorizontalToolBox(E5TabWidget):
+    """
+    Class implementing a vertical QToolBox like widget.
+    """
+    def __init__(self, parent = None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        E5TabWidget.__init__(self, parent)
+        self.setTabPosition(QTabWidget.West)
+    
+    def addItem(self, widget, icon, text):
+        """
+        Public method to add a widget to the toolbox.
+        
+        @param widget reference to the widget to be added (QWidget)
+        @param icon the icon to be shown (QIcon)
+        @param text the text to be shown (string)
+        @return index of the added widget (integer)
+        """
+        index = self.addTab(widget, icon, "")
+        self.setTabToolTip(index, text)
+        return index
+    
+    def insertItem(self, index, widget, icon, text):
+        """
+        Public method to add a widget to the toolbox.
+        
+        @param index position at which the widget should be inserted (integer)
+        @param widget reference to the widget to be added (QWidget)
+        @param icon the icon to be shown (QIcon)
+        @param text the text to be shown (string)
+        @return index of the added widget (integer)
+        """
+        index = self.insertTab(index, widget, icon, "")
+        self.setTabToolTip(index, text)
+        return index
+    
+    def setItemToolTip(self, index, toolTip):
+        """
+        Public method to set the tooltip of an item.
+        
+        @param index index of the item (integer)
+        @param toolTip tooltip text to be set (string)
+        """
+        self.setTabToolTip(index, toolTip)
+    
+    def setItemEnabled(self, index, enabled):
+        """
+        Public method to set the enabled state of an item.
+        
+        @param index index of the item (integer)
+        @param enabled flag indicating the enabled state (boolean)
+        """
+        self.setTabEnabled(index, enabled)
\ No newline at end of file

eric ide

mercurial