123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- # -*- coding: utf-8 -*-
- import pygame
- from .widget import Widget
- from . import font_manager
- class Label(Widget):
- def __init__(self, x, y, width=1, height=1, text="", font_obj=font_manager.get_font("default"),
- color=(83, 83, 83), bg_color=None,
- auto_resize=True):
- super().__init__(x=x, y=y, width=width, height=height, color=color, bg_color=bg_color)
- self._Text = text
- self._Color = color
- self._FontObj = font_obj
- self._AutoResize = auto_resize
- self._Resize()
- def _Resize(self):
- if not self._AutoResize:
- return
- tmp = self._FontObj.render(self._Text, True, self._Color)
- self.set_size(tmp.get_width(), tmp.get_height())
- def set_font(self, fontname):
- self._FontObj = font_manager.get_font(fontname)
- self._Resize()
- def GetText(self):
- return self._Text
- def SetText(self, text):
- self._Text = text
- self._Resize()
- def Draw(self):
- super().Draw()
- # Avoding same font tangling set_bold to others
- self._FontObj.set_bold(False)
- my_text = self._FontObj.render(self._Text, True, self._Color)
- self._Parent.get_canvas().blit(my_text, self._Rect)
|