item_delegates.py
Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 
00003 # Copyright (c) 2011, Dorian Scholz, TU Darmstadt
00004 # All rights reserved.
00005 #
00006 # Redistribution and use in source and binary forms, with or without
00007 # modification, are permitted provided that the following conditions
00008 # are met:
00009 #
00010 #   * Redistributions of source code must retain the above copyright
00011 #     notice, this list of conditions and the following disclaimer.
00012 #   * Redistributions in binary form must reproduce the above
00013 #     copyright notice, this list of conditions and the following
00014 #     disclaimer in the documentation and/or other materials provided
00015 #     with the distribution.
00016 #   * Neither the name of the TU Darmstadt nor the names of its
00017 #     contributors may be used to endorse or promote products derived
00018 #     from this software without specific prior written permission.
00019 #
00020 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00021 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00022 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00023 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00024 # COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00025 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00026 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00027 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00028 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00029 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00030 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00031 # POSSIBILITY OF SUCH DAMAGE.
00032 
00033 from python_qt_binding.QtCore import QModelIndex
00034 from python_qt_binding.QtGui import QDoubleSpinBox, QItemDelegate
00035 
00036 
00037 class SpinBoxDelegate(QItemDelegate):
00038     def __init__(self, min_value=0, max_value=100, decimals=2, *args):
00039         self._min = min_value
00040         self._max = max_value
00041         self._decimals = decimals
00042         super(SpinBoxDelegate, self).__init__(*args)
00043 
00044     def createEditor(self, parent, option, index):
00045         editor = QDoubleSpinBox(parent)
00046         editor.setDecimals(self._decimals)
00047         editor.setMaximum(self._min)
00048         editor.setMaximum(self._max)
00049         return editor
00050 
00051 
00052 class DelegateUtil(object):
00053     """
00054     Find out the hierarchy level of the selected item.
00055     see: http://stackoverflow.com/a/4208240/577001
00056 
00057     :type model_index: QModelIndex
00058     :rtype: int
00059 
00060     :author: Isaac Saito
00061     """
00062     @staticmethod
00063     def _get_hierarchy_level(model_index):
00064         hierarchyLevel = 1
00065         seek_root = model_index
00066         while(seek_root.parent() != QModelIndex()):
00067             seek_root = seek_root.parent()
00068             hierarchyLevel += 1
00069         return hierarchyLevel


rqt_py_common
Author(s): Dorian Scholz, Isaac Saito
autogenerated on Wed Sep 16 2015 06:58:00