Source code for taurus.qt.qtgui.input.tauruscheckbox

#!/usr/bin/env python

# ###########################################################################
#
# This file is part of Taurus
#
# http://taurus-scada.org
#
# Copyright 2011 CELLS / ALBA Synchrotron, Bellaterra, Spain
#
# Taurus is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# Taurus is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Taurus.  If not, see <http://www.gnu.org/licenses/>.
#
# ###########################################################################

"""This module provides a set of basic taurus widgets based on QCheckBox
"""


__docformat__ = "restructuredtext"

from taurus.external.qt import Qt
from taurus.qt.qtgui.base import TaurusBaseWritableWidget


[docs]class TaurusValueCheckBox(Qt.QCheckBox, TaurusBaseWritableWidget): """A QCheckBox connected to a boolean writable attribute model""" def __init__(self, qt_parent=None, designMode=False): name = "TaurusValueCheckBox" self.call__init__wo_kw(Qt.QCheckBox, qt_parent) self.call__init__( TaurusBaseWritableWidget, name, designMode=designMode ) self.setObjectName(name) self.updateStyle() self.stateChanged.connect(self.notifyValueChanged)
[docs] def keyPressEvent(self, event): if event.key() in (Qt.Qt.Key_Return, Qt.Qt.Key_Enter): self.writeValue() event.accept() else: Qt.QCheckBox.keyPressEvent(self, event) event.ignore()
[docs] def minimumSizeHint(self): return Qt.QSize(20, 20)
# -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~ # TaurusBaseWritableWidget overwriting # -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
[docs] def updateStyle(self): TaurusBaseWritableWidget.updateStyle(self) # Show text only if it is not specifically hidden if self._showText: try: self.setText(str(self.getModelObj().getConfig().getLabel())) except Exception: self.setText("----") else: self.setText("") # Update pending operations style if self.hasPendingOperations(): txt = str(self.text()).strip() if len(txt) == 0: self.setText("!") self.setStyleSheet("TaurusValueCheckBox {color: blue;}") else: if str(self.text()) == "!": self.setText(" ") self.setStyleSheet("TaurusValueCheckBox {}") self.update()
[docs] def setValue(self, v): self.setChecked(bool(v))
[docs] def getValue(self): return self.isChecked()
[docs] @classmethod def getQtDesignerPluginInfo(cls): ret = TaurusBaseWritableWidget.getQtDesignerPluginInfo() ret["module"] = "taurus.qt.qtgui.input" ret["icon"] = "designer:checkbox.png" return ret
# -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~ # QT properties # -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~ model = Qt.pyqtProperty( "QString", TaurusBaseWritableWidget.getModel, TaurusBaseWritableWidget.setModel, TaurusBaseWritableWidget.resetModel, ) showText = Qt.pyqtProperty( "bool", TaurusBaseWritableWidget.getShowText, TaurusBaseWritableWidget.setShowText, TaurusBaseWritableWidget.resetShowText, ) #: (deprecated)) useParentModel = Qt.pyqtProperty( "bool", TaurusBaseWritableWidget.getUseParentModel, TaurusBaseWritableWidget.setUseParentModel, TaurusBaseWritableWidget.resetUseParentModel, ) autoApply = Qt.pyqtProperty( "bool", TaurusBaseWritableWidget.getAutoApply, TaurusBaseWritableWidget.setAutoApply, TaurusBaseWritableWidget.resetAutoApply, ) forcedApply = Qt.pyqtProperty( "bool", TaurusBaseWritableWidget.getForcedApply, TaurusBaseWritableWidget.setForcedApply, TaurusBaseWritableWidget.resetForcedApply, )