我有一个简单的代码:
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。抱歉我的英文不好
答案 0 :(得分:1)
要制作图像或任何可滚动的内容,请使用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
可以保留原始窗口大小,即使将来会发生更改。
答案 1 :(得分:0)
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()