E5Gui/E5ToolBox.py

Fri, 31 Dec 2010 15:50:33 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 31 Dec 2010 15:50:33 +0100
branch
5_0_x
changeset 792
a13346916170
parent 55
b5c84934de9c
child 945
8cd4d08fa9f6
child 1398
187a2f37e1d4
permissions
-rw-r--r--

Updated copyright notice.

# -*- coding: utf-8 -*-

# Copyright (c) 2008 - 2011 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)

eric ide

mercurial