Source code for taurus.qt.qtgui.display.demo.tauruslabeldemo

#!/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 demo for the :class:`taurus.qt.qtgui.display.TaurusLabel`
widget """

__all__ = ["demo", "main"]

__docformat__ = 'restructuredtext'

from taurus.external.qt import Qt


[docs]def demo(): import sys import taurus.qt.qtgui.application import taurus.qt.qtgui.display Application = taurus.qt.qtgui.application.TaurusApplication TaurusLabel = taurus.qt.qtgui.display.TaurusLabel app = Application.instance() owns_app = app is None if owns_app: app = Application() M = 2 class TaurusLabelTestPanel(Qt.QWidget): def __init__(self, parent=None): Qt.QWidget.__init__(self, parent) panel_l = Qt.QVBoxLayout() self.setLayout(panel_l) panel_l.setContentsMargins(M, M, M, M) panel_l.setSpacing(M) w = TaurusLabel() display_panel = Qt.QGroupBox("Taurus Label Display") display_l = Qt.QHBoxLayout() display_l.setContentsMargins(M, M, M, M) display_l.setSpacing(M) display_panel.setLayout(display_l) # display_l.addStretch(1) display_l.addWidget(w) control_panel = Qt.QGroupBox("Control Panel") control_l = Qt.QFormLayout() control_l.setContentsMargins(M, M, M, M) control_l.setSpacing(M) control_panel.setLayout(control_l) model_widget = Qt.QLineEdit() format_widget = Qt.QLineEdit() model_index_widget = Qt.QLineEdit() fg_widget = Qt.QComboBox() bg_widget = Qt.QComboBox() prefix_widget = Qt.QLineEdit() suffix_widget = Qt.QLineEdit() control_l.addRow("model:", model_widget) control_l.addRow("model index:", model_index_widget) control_l.addRow("foreground role:", fg_widget) control_l.addRow("background role:", bg_widget) control_l.addRow("formatter:", format_widget) control_l.addRow("prefix text:", prefix_widget) control_l.addRow("suffix text:", suffix_widget) panel_l.addWidget(display_panel) panel_l.addWidget(control_panel) fg_widget.addItems(["", "rvalue", "rvalue.magnitude", "rvalue.units", "wvalue", "wvalue.magnitude", "wvalue.units", "state", "quality", "none"]) bg_widget.addItems(["quality", "state", "value", "none"]) model_widget.textChanged.connect(w.setModel) format_widget.textChanged.connect(w.setFormat) fg_widget.currentIndexChanged['QString'].connect(w.setFgRole) bg_widget.currentIndexChanged['QString'].connect(w.setBgRole) prefix_widget.textChanged.connect(w.setPrefixText) suffix_widget.textChanged.connect(w.setSuffixText) model_index_widget.textChanged.connect(w.setModelIndex) model_widget.setText("sys/tg_test/1/double_scalar") format_widget.setText(w.getFormat()) fg_widget.setCurrentIndex(0) fg_widget.setEditable(True) bg_widget.setCurrentIndex(0) bg_widget.setEditable(True) self.w_label = w self.w_model = model_widget self.w_model_index = model_index_widget self.w_fg = fg_widget self.w_bg = bg_widget self.w_prefix = prefix_widget self.w_suffix = suffix_widget panel = Qt.QWidget() panel.setWindowTitle(app.applicationName()) layout = Qt.QGridLayout() panel.setLayout(layout) layout.setContentsMargins(M, M, M, M) layout.setSpacing(M) p1 = TaurusLabelTestPanel() p1.w_model.setText("sys/tg_test/1/double_scalar") p2 = TaurusLabelTestPanel() p2.w_model.setText("sys/tg_test/1/double_scalar#label") p2.w_bg.setCurrentIndex(3) # bgRole='none' layout.addWidget(p1, 0, 0) layout.addWidget(p2, 0, 1) layout.addItem(Qt.QSpacerItem(10, 10), 1, 0, 1, 2) layout.setRowStretch(1, 1) panel.show() if owns_app: sys.exit(app.exec_()) else: return panel
[docs]def main(): return demo()
if __name__ == "__main__": main()