Last active
March 1, 2022 20:25
-
-
Save kived/862db38078170ec0ef83 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from kivy.app import App | |
from kivy.lang import Builder | |
root = Builder.load_string(''' | |
<ScaleLabel@Label>: | |
_scale: 1. if self.texture_size[0] < self.width else float(self.width) / self.texture_size[0] | |
canvas.before: | |
PushMatrix | |
Scale: | |
origin: self.center | |
x: self._scale or 1. | |
y: self._scale or 1. | |
canvas.after: | |
PopMatrix | |
<-ScaleButton@Button>: | |
state_image: self.background_normal if self.state == 'normal' else self.background_down | |
disabled_image: self.background_disabled_normal if self.state == 'normal' else self.background_disabled_down | |
_scale: 1. if self.texture_size[0] < self.width else float(self.width) / self.texture_size[0] | |
canvas: | |
Color: | |
rgba: self.background_color | |
BorderImage: | |
border: self.border | |
pos: self.pos | |
size: self.size | |
source: self.disabled_image if self.disabled else self.state_image | |
PushMatrix | |
Scale: | |
origin: self.center | |
x: self._scale or 1. | |
y: self._scale or 1. | |
Color: | |
rgba: self.disabled_color if self.disabled else self.color | |
Rectangle: | |
texture: self.texture | |
size: self.texture_size | |
pos: int(self.center_x - self.texture_size[0] / 2.), int(self.center_y - self.texture_size[1] / 2.) | |
PopMatrix | |
BoxLayout: | |
orientation: 'vertical' | |
ScaleLabel: | |
size_hint_y: 0.2 | |
text: 'my scale text here (%d, %.2f)' % (self.width, self._scale) | |
padding: dp(12), dp(12) | |
font_size: self.height * 0.5 | |
ScaleButton: | |
size_hint_y: 0.2 | |
text: 'scale button' | |
padding: dp(12), dp(12) | |
font_size: self.height * 0.5 | |
Widget | |
''') | |
class TestApp(App): | |
def build(self): | |
return root | |
if __name__ == '__main__': | |
TestApp().run() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is a gem. Thank you. Using it to auto change the font size of a calculation label.
A question, if I may: How can I right align the text? As it stands, text starts to flow from the center.
Tried:
text_size: self.size
halign: 'right'
Among other things, with no luck.