Kivy:图像滚动
Kivy: Image scrolling
我有一个简单的代码:
from kivy.app import App
from kivy.uix.image import Image
class TutorialApp(App):
def build(self):
l=Image(source='kivy.jpg', keep_ratio=True)
return l
if __name__ == "__main__":
TutorialApp().run()
我得到以下结果:
我想要图像宽度等于屏幕宽度(不丢失纵横比)。我还需要垂直滚动(以查看完整图像)。
结果应该是这样的:
怎么做?
P.S。抱歉我的英语不好
要使图像或任何内容可滚动,请使用 ScrollView:
from kivy.app import App
from kivy.uix.image import Image
from kivy.uix.scrollview import ScrollView
from kivy.core.window import Window
class TutorialApp(App):
def build(self):
sv = ScrollView(size=Window.size)
l = Image(
source='kivy.jpg',
size_hint=(None, None),
keep_ratio=True,
size=Window.size
)
sv.add_widget(l)
return sv
if __name__ == "__main__":
TutorialApp().run()
将 size_hint
设置为 (None, None) 然后定义固定的 size
允许保持原始 window 大小,即使它是未来的变化。
from kivy.app import App
from kivy.core.window import Window
from kivy.uix.image import Image
from kivy.uix.scatter import ScatterPlane
class MyScatterPlane(App):
def build(self):
sp = ScatterPlane(scale=1)
img = Image(source='ccc.bmp', pos=(0,0), size=Window.size)
sp.add_widget(img)
return sp
if __name__ == '__main__':
MyScatterPlane().run()
我有一个简单的代码:
from kivy.app import App
from kivy.uix.image import Image
class TutorialApp(App):
def build(self):
l=Image(source='kivy.jpg', keep_ratio=True)
return l
if __name__ == "__main__":
TutorialApp().run()
我得到以下结果:
我想要图像宽度等于屏幕宽度(不丢失纵横比)。我还需要垂直滚动(以查看完整图像)。
结果应该是这样的:
怎么做?
P.S。抱歉我的英语不好
要使图像或任何内容可滚动,请使用 ScrollView:
from kivy.app import App
from kivy.uix.image import Image
from kivy.uix.scrollview import ScrollView
from kivy.core.window import Window
class TutorialApp(App):
def build(self):
sv = ScrollView(size=Window.size)
l = Image(
source='kivy.jpg',
size_hint=(None, None),
keep_ratio=True,
size=Window.size
)
sv.add_widget(l)
return sv
if __name__ == "__main__":
TutorialApp().run()
将 size_hint
设置为 (None, None) 然后定义固定的 size
允许保持原始 window 大小,即使它是未来的变化。
from kivy.app import App
from kivy.core.window import Window
from kivy.uix.image import Image
from kivy.uix.scatter import ScatterPlane
class MyScatterPlane(App):
def build(self):
sp = ScatterPlane(scale=1)
img = Image(source='ccc.bmp', pos=(0,0), size=Window.size)
sp.add_widget(img)
return sp
if __name__ == '__main__':
MyScatterPlane().run()