이것은 실제로 흥미로운 질문입니다.
보통 텍스트, 글꼴, 글꼴 크기 및 렌더러로 텍스트 (text_size
)를 제한하고이를 일부 크기의 텍스처로 가져 오는 영역을 전달합니다. 원하는 것은 글꼴 크기를 얻기 위해 레이블의 텍스처 크기를 아는 것입니다. 이론적으로는 가능하지만 Kivy에서 모든 계산을 수동으로 수행해야합니다.
몇 가지 해결 방법을 사용할 수 있습니까? 글꼴 크기를 계산하는 대신 크기가 큰 일부 텍스처를 사용하여 주어진 크기와 일치시킬 수 있습니다. 예를 들어, Kivy의 Image
위젯을 사용하면 배급을 유지하면서 규모를 조정할 수 있습니다. 개념 증명 (파이썬 3) : 이상적인에서 멀리
from kivy.app import App
from kivy.lang import Builder
from kivy.properties import StringProperty
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.image import Image
from kivy.uix.label import Label
class MyLabel(Image):
text = StringProperty('')
def on_text(self, *_):
# Just get large texture:
l = Label(text=self.text)
l.font_size = '1000dp' # something that'll give texture bigger than phone's screen size
l.texture_update()
# Set it to image, it'll be scaled to image size automatically:
self.texture = l.texture
class RootWidget(BoxLayout):
pass
class TestApp(App):
def build(self):
return MyLabel(text='Test test test')
if __name__ == '__main__':
TestApp().run()
,하지만 일을한다.
결과 :
덕분에,이 아웃 오브 박스입니다. 파이썬 2에서 같은 개념을 시도했는데 작동하지 않는 것처럼 보였습니다. 내 코드가 게시물에 있습니다. 너의 것 :'on_text' 또는'on_texture'? – Arief
@A 간단한 코드가 정확하지 않습니다. 방금 확인한 바 파이썬 2에서도 아무런 변화없이 작동 할 것입니다. 'on_text'는'Image' 클래스의 일부 멤버가 아니지만'text' 속성이 변경 될 때 자동으로 호출되는 함수입니다. 자세한 내용은이 [link] (https://kivy.org/docs/api-kivy.properties.html#observe-using-on-propname)을 참조하십시오. –