Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 from .icon_tool_button import IconToolButton
00034
00035
00036 class BatteryDashWidget(IconToolButton):
00037 """
00038 A Widget which displays incremental battery state, including a status tip.
00039 To use this widget simply call `update_perc` and `update_time` to change the displayed charge percentage and time remaining, respectively.
00040
00041 :param name: The name of this widget
00042 :type name: str
00043 """
00044 def __init__(self, name='Battery', icons=None, charge_icons=None, icon_paths=None):
00045 if icons == None:
00046 icons = []
00047 charge_icons = []
00048 for x in range(6):
00049 icons.append(['ic-battery-%s.svg' % (x * 20)])
00050 charge_icons.append(['ic-battery-charge-%s.svg' % (x * 20)])
00051 super(BatteryDashWidget, self).__init__(name, icons, charge_icons, icon_paths=icon_paths)
00052 self.setEnabled(False)
00053
00054 self._charge_icons = self._clicked_icons
00055 self.setStyleSheet('QToolButton:disabled {}')
00056
00057 self._charging = False
00058
00059 self.update_perc(0)
00060
00061 def set_charging(self, value):
00062 self._charging = value
00063
00064 def update_perc(self, val):
00065 """Update the displayed battery percentage.
00066 The default implementation of this method displays in 20% increments
00067
00068 :param val: The new value to be displayed.
00069 :type val: int
00070 """
00071 self.update_state(round(val / 20.0))
00072
00073 def _update_state(self, state):
00074 if self._charging:
00075 self.setIcon(self._charge_icons[state])
00076 else:
00077 self.setIcon(self._icons[state])
00078
00079 def update_time(self, value):
00080 self.setToolTip("%s%% remaining" % value)