Source code for taurus.qt.qtgui.display.tauruslcdvalue
#!/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 QLCDNumber"""
__all__ = ["TaurusLCDValue"]
__docformat__ = 'restructuredtext'
from taurus.external.qt import Qt
from taurus.qt.qtgui.util import QT_ATTRIBUTE_QUALITY_PALETTE
from taurus.qt.qtgui.base import TaurusBaseWidget
[docs]class TaurusLCDValue(Qt.QLCDNumber, TaurusBaseWidget):
"""
A LCD widget displaying a tango attribute value
.. deprecated:: 2.0
Use :class:`taurus.qt.qtgui.display.TaurusLCD` instead.
"""
__pyqtSignals__ = ("modelChanged(const QString &)",)
def __init__(self, parent = None, designMode = False):
name = self.__class__.__name__
self.call__init__wo_kw(Qt.QLCDNumber, parent)
self.call__init__(TaurusBaseWidget, name, designMode=designMode)
self.defineStyle()
[docs] def defineStyle(self):
self.setFrameShape(Qt.QFrame.Panel)
self.setFrameShadow(Qt.QFrame.Raised)
self.setSmallDecimalPoint(True)
self.setMode(Qt.QLCDNumber.Dec)
self.setSegmentStyle(Qt.QLCDNumber.Filled)
self.updateStyle()
# The minimum size of the widget (a limit for the user)
[docs] def minimumSizeHint(self):
return Qt.QSize(80, 40)
# The default size of the widget
#def sizeHint(self):
# return Qt.QSize(100, 32)
#-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
# TaurusBaseWidget over writing
#-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
[docs] def getModelClass(self):
import taurus.core
return taurus.core.taurusattribute.TaurusAttribute
[docs] def isReadOnly(self):
return True
[docs] def updateStyle(self):
n = 6
model = self.getModelObj()
if not model is None:
fmt = model.getFormat()
if fmt:
n = self.getCharsToDisplayFromFormat(fmt)
if n != self.numDigits():
self.setNumDigits(n)
self.setAutoFillBackground(self.getShowQuality())
if self.getShowQuality():
v = self.getModelValueObj()
quality = None
if v:
quality = v.quality
bg_brush, fg_brush = QT_ATTRIBUTE_QUALITY_PALETTE.qbrush(quality)
palette = self.palette()
palette.setBrush(Qt.QPalette.Window,bg_brush)
palette.setBrush(Qt.QPalette.WindowText,fg_brush)
else:
palette = self.palette()
palette.setBrush(Qt.QPalette.Window, Qt.Qt.white)
palette.setBrush(Qt.QPalette.WindowText, Qt.Qt.black)
self.update()
@classmethod
[docs] def getQtDesignerPluginInfo(cls):
return None
# ret = TaurusBaseWidget.getQtDesignerPluginInfo()
# ret['module'] = 'taurus.qt.qtgui.display'
# ret['group'] = 'Taurus Widgets [Old]'
# ret['icon'] = ":/designer/lcdnumber.png"
# return ret
#-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
# QT properties
#-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
model = Qt.pyqtProperty("QString", TaurusBaseWidget.getModel,
TaurusBaseWidget.setModel,
TaurusBaseWidget.resetModel)
useParentModel = Qt.pyqtProperty("bool", TaurusBaseWidget.getUseParentModel,
TaurusBaseWidget.setUseParentModel,
TaurusBaseWidget.resetUseParentModel)
showQuality = Qt.pyqtProperty("bool", TaurusBaseWidget.getShowQuality,
TaurusBaseWidget.setShowQuality,
TaurusBaseWidget.resetShowQuality)
def main():
"""hello"""
import sys
import taurus.qt.qtgui.application
Application = taurus.qt.qtgui.application.TaurusApplication
app = Application.instance()
owns_app = app is None
if owns_app:
import taurus.core.util.argparse
parser = taurus.core.util.argparse.get_taurus_parser()
parser.usage = "%prog [options] <full_attribute_name>"
app = Application(sys.argv, cmd_line_parser=parser)
args = app.get_command_line_args()
if len(args) > 0:
args = map(str.lower, args)
else:
args = [ 'sys/tg_test/1/double_scalar' ]
w = Qt.QWidget()
w.setAutoFillBackground(True)
layout = Qt.QGridLayout()
layout.setContentsMargins(0,0,0,0)
layout.setSpacing(0)
w.setLayout(layout)
lcd = TaurusLCDValue(w)
lcd.model = args[0]
layout.addWidget(lcd)
w.show()
if owns_app:
sys.exit(app.exec_())
else:
return w
if __name__ == "__main__":
main()