저는 Kivy를 처음 접했고 캔버스에 텍스트를 배치하려고했지만 문자가 Label
인데 제대로 배치되지 않았습니다. 같은 값으로 Rectangle
을 그리면 올바른 위치에 놓입니다.Kivy : 레이블에 다른 위치가 있습니다. 사각형
나는 비슷한 질문을 몇 개 발견했지만 나에게는 답이 없다고 생각합니다. 여기
내 코드입니다 :당신이 예상대로 Rectangle
위치가 수평으로 중앙에 볼 수 있듯이하지만 Label
가 중앙하지 않으며이되지도 :
class MyClass(Widget):
def __init__(self, **kwargs):
super(MyClass, self).__init__(**kwargs)
self._keyboard = Window.request_keyboard(self._keyboard_closed, self)
self._keyboard.bind(on_key_down=self._on_keyboard_down)
def _keyboard_closed(self):
pass
def _on_keyboard_down(self, keyboard, keycode, text, modifiers):
with self.canvas:
lbl_staticText = Label(font_size=12)
lbl_staticText.text = 'This is some nice random text\nwith linebreak'
lbl_staticText.texture_update()
textSize = lbl_staticText.texture_size
Rectangle(pos=(1024/2 - textSize[0]/2, 600), size=(textSize[0], textSize[1])); #Rectangle with same position and same size
lbl_staticText.pos = (1024/2 - textSize[0]/2, 600)
결과는 같다 오른쪽 높이 위치.
왜 차이가 있는지 말해 줄 수 있습니까?
감사합니다.
답장을 보내 주셔서 감사합니다. 좋습니다, 나는 texture_size가 label.size와 다르다는 것을 몰랐습니다. 나는 그것이 내가 놓친 요점이라고 생각한다. size_hint에 대해 언급했습니다. 문제를 보면서 문제가 무엇입니까? 나는 그 문제에 대한 맥락을 알지 못했다. –
@ S-Man 무슨 일이 일어나는지 보려면 ['Label.texture_size'] (https://kivy.org/docs/api-kivy.uix.label.html#kivy.uix.label.Label.texture_size)를보십시오. . 'size_hint'에 관해서, 위젯은 그 값들 (주로 레이아웃들)을 가지고 작업 할 수있는 부모에 추가된다면 그 값들과 함께 작동합니다. 'Label '을'MyClass'의'canvas'에 그리는 동안 완전히 별개의 파이썬 객체로 만들었습니다. 그러므로 parent = no'size_hint'는 사용되지 않습니다. – KeyWeeUsr