저는 처음 Kivy 응용 프로그램을 파이썬으로 작성했습니다 (지금 kv를 피하고 있습니다). WorldviewWidget이라는 사용자 정의 위젯을 만들었으므로이 패키지를 그리기 장소로 사용하려고합니다. 버튼 위젯을 사용하면 size_hint와 pos_hint를주고, 원하는 위치에 나타납니다. 그러나 위젯을 사용하면 size_hint 및 position_hint를 사용하여 WorldviewWidget에서 드로잉 할 직사각형의 크기를 조절하는 방법을 알 수 없습니다. 여기에 코드가 있습니다. 미리 감사드립니다!Kivy 응용 프로그램에서 캔버스 자동 크기 조정
#! /usr/bin/python
from kivy.app import App
from kivy.graphics import *
from kivy.core.window import Window
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.widget import Widget
from kivy.uix.button import Button
class WorldviewWidget(Widget):
def __init__(self, **kwargs):
super(WorldviewWidget, self).__init__(**kwargs)
self.canvas.clear()
print self.size, self.pos
with self.canvas:
Color(1, 0, 0, 1, mode='rgba')
# HELP! I want the rectangle to be resized when the window changes size so that it always takes up the same proportion of the screen.
self.rect = Rectangle(size=???, pos=???)
class JFROCS_App(App):
def build(self):
Window.clearcolor = [1,1,1,1]
parent = FloatLayout(size=Window.size)
worldview = WorldviewWidget(size_hint=(0.4, 0.4), pos_hint = {'x':0.2, 'y':0.2})
parent.add_widget(worldview)
start_btn = Button(text='Start', size_hint=(0.1, 0.1), pos_hint={'x':.02, 'y':.7}, background_color=[0,1,0,1])
start_btn.bind(on_release=self.start_simulation)
parent.add_widget(start_btn)
pause_btn = Button(text='Pause', size_hint=(0.1,0.1), pos_hint={'x':.02, 'y':.6}, background_color=[1,1,0,1])
pause_btn.bind(on_release=self.pause_simulation)
parent.add_widget(pause_btn)
stop_btn = Button(text='Stop', size_hint=(0.1,0.1), pos_hint={'x':.02, 'y':.5}, background_color=[1,0,0,1])
stop_btn.bind(on_release=self.stop_simulation)
parent.add_widget(stop_btn)
return parent
def start_simulation(self, obj):
print "You pushed the start button!"
def pause_simulation(self, obj):
print "You pushed the pause button!"
def stop_simulation(self, obj):
print "You pushed the stop button!"
if __name__ == '__main__':
JFROCS_App().run()
감사합니다 돌봐! 나는 확실히 언어를 들여다 볼 것이다. 나는 단지 그것이 장면들 뒤에 무엇을하고 있는지를 이해하고 싶다. :) –