Kivy:图像滚动

时间:2016-02-25 11:44:13

标签: python kivy

我有一个简单的代码:

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()

我得到以下结果:

enter image description here

我希望图像宽度等于屏幕宽度(不会丢失纵横比)。我还需要垂直滚动(查看完整图像)。

结果应该是这样的:

enter image description here

怎么做?

P.S。抱歉我的英文不好

2 个答案:

答案 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()