Kivy Video-使用短边作为尺寸

时间:2019-09-20 16:07:43

标签: python python-3.x kivy kivy-language

我正在使用视频小部件在“相对布局”上设置背景视频,视频大小会自动调整为屏幕大小,这很棒。但是,我希望这样做,只是使用视频的短边以适合屏幕,这样视频才能完全填满屏幕,并且不会留下像这样的“边缘”

我认为在kv文件中使用屏幕上小部件的百分比差异:     size_hint: 1, 1+(root.width-self.width)/root.width可以纠正它,但是两个宽度似乎相等。

我的文件

MainApp.py:

import os
os.environ['KIVY_VIDEO']='ffpyplayer'
import kivy
kivy.require('1.11.1')

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.gridlayout import GridLayout
from kivy.uix.video import Video
from kivy.clock import Clock

class Login(Screen):
    pass

class Loop(Video):
    def __init__(self, **kwargs):
        super(Loop, self).__init__(**kwargs)
        Clock.schedule_interval(self.restart, 3)
        print(self.width)

    def restart(self, dt):
        if self.eos:
            self.position=0
            self.state='play'


class MainApp(App):
    def build(self):
        sm = ScreenManager()
        sm.add_widget(Login(name='Login'))
        return sm

if __name__ == '__main__':
    app = MainApp()
    app.run()

app.kv:

<Login>:
    Loop:
        size_hint: 1, 1+(root.width-self.width)/root.width
        source: 'bg_panteras.mp4'
        state: 'play'
        on_eos: 'loop'
    BoxLayout:
        padding: 50
        orientation: 'vertical'
        Label:
            text: 'Panteras'
            font_size: '24dp'
        Label:
            size_hint: 1, 2
        Button:
            text: 'feisbuk'
        Label:
            size_hint: 1, 0.5
        Button:
            text: 'Invitado'

0 个答案:

没有答案