footer.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 ################################################################################
3 #
4 # Copyright Airbus Group SAS 2015
5 # All rigths reserved.
6 #
7 # File Name : footer.py
8 # Authors : Martin Matignon
9 #
10 # If you find any bug or if you have any question please contact
11 # Adolfo Suarez Roos <adolfo.suarez@airbus.com>
12 # Martin Matignon <martin.matignon.external@airbus.com>
13 #
14 #
15 ################################################################################
16 import time
17 
18 from python_qt_binding.QtGui import *
19 from python_qt_binding.QtCore import *
20 
21 from pkg_dir import airbus_cobot_gui_dir
22 from alarm.alarm import AlarmCategory
23 
24 
25 class Slider(QThread):
26 
27  def __init__(self):
28  QThread.__init__(self)
29 
30  self._start_pos = 30
31  self._end_pos = 300
32  self._step = 1
33 
34  def init(self, start_pos, end_pos, step, speed = 0.0005):
35 
36  self._start_pos = start_pos
37  self._end_pos = end_pos
38  self._step = step
39 
40  def run(self):
41 
42  for i in range(self._start_pos, self._end_pos, self._step):
43  self.emit(SIGNAL('valueChanged(int)'),i)
44  time.sleep(0.0005)
45 
46 class Footer_v2(QWidget):
47  """! Footer class inherit QWidget.
48  This class install and display all gadgets registered in section <footer>
49  """
50 
51  OPENED = True
52  CLOSED = False
53 
54  def __init__(self, parent=None):
55  QWidget.__init__(self, parent)
56  """! Constructor."""
57 
58  self._status = self.CLOSED
59 
60  self._minimum_height = 30
61  self._maximum_height = 200
62 
63  self.setFixedHeight(self._minimum_height)
64 
65  self._slider = Slider()
66  self.connect(self._slider, SIGNAL('valueChanged(int)'), self.setFixedHeight)
67 
68  self._header_widget = QWidget(self)
69  self._header_widget.setStyleSheet('background-color:#cecece;')
70  self._header_widget.move(0, 0)
71 
72  self._alarm_label = QLabel(self._header_widget)
73  self._alarm_label.setGeometry(QRect(5,5,20,20))
74  self._alarm_label.setStyleSheet('background-color:rgb(0,255,0);')
75 
76  self._alarm_message = QLabel(self._header_widget)
77  self._alarm_message.setGeometry(QRect(30,0,300,30))
78  self._alarm_message.setStyleSheet('background-color:#cecece;')
79 
80  self._ico_swith = QPushButton(self._header_widget)
81  self._ico_swith.setStyleSheet('background-color:rgba(0,0,0,0);')
82  self._ico_swith.setFocusPolicy(Qt.NoFocus)
83  self._ico_swith.setIcon(QIcon(airbus_cobot_gui_dir('resources',
84  'icons/switch_footer.png')))
85  self._ico_swith.setIconSize(QSize(80, self._minimum_height))
86  self.connect(self._ico_swith,SIGNAL('pressed()'),self._trigger)
87 
88  self._container_layout_widget = QWidget(self)
89  self._container_layout_widget.setStyleSheet('background-color:#e7e6e5;')
90  self._container_layout_widget.setMouseTracking(False)
91  self._container_layout_widget.move(0, self._minimum_height)
92 
93  self.central_layout = QGridLayout(self._container_layout_widget)
94  self.central_layout.setContentsMargins(5, 5, 5, 5)
95  self.central_layout.setHorizontalSpacing(10)
96  self.central_layout.setVerticalSpacing(10)
97 
98  def set_maximum_height(self, h):
99  self._maximum_height = h
100 
101  def update_alarm(self, alarm):
102  """! Methode called when alarm emit signal.
103  @param alarm: alarm descrition (level, msg).
104  @type alarm: Alarm.
105  """
106 
107  if alarm.level == AlarmCategory.CRITICAL:
108 # self._header_widget.setStyleSheet('background-color:rgb(255,0,0);')
109  self._alarm_label.setStyleSheet('background-color:rgb(255,0,0);')
110  self._alarm_message.setText(alarm.msg)
111  if alarm.level == AlarmCategory.ACQUIT:
112  self._alarm_label.setStyleSheet('background-color:rgb(0,255,0);')
113  self._alarm_message.setText("")
114 # self._header_widget.setStyleSheet('background-color:#cecece;')
115 
116 
117  def _trigger(self):
118 
119  if self._status == self.CLOSED:
120  self._slider.init(self._minimum_height, self._maximum_height, 1)
121  self._slider.start()
122  self._status = self.OPENED
123  else:
124  self._slider.init(self._maximum_height, self._minimum_height, -1)
125  self._slider.start()
126  self._status = self.CLOSED
127 
128  def resizeEvent(self, event):
129  """! Redefinit QWidget method called when applie size changed.
130  @param event: event.
131  @type event: QEvent.
132  """
133 
134  self._header_widget.resize(self.width(), self._minimum_height)
135 
136  self._ico_swith.setFixedSize(self._header_widget.width(), self._minimum_height)
137 
138  delta = self._maximum_height-self._minimum_height
139 
140  self._container_layout_widget.resize(self.width(), delta)
141 
142  self.central_layout.setGeometry(QRect(0,
143  self._minimum_height,
144  self.width(), delta))
145 
146 
Footer class inherit QWidget.
Definition: footer.py:46
def update_alarm
Methode called when alarm emit signal.
Definition: footer.py:101
def resizeEvent
Redefinit QWidget method called when applie size changed.
Definition: footer.py:128


airbus_cobot_gui
Author(s):
autogenerated on Thu Dec 17 2015 11:42:05