改变两个不同的kivy屏幕的大小

时间:2017-03-03 00:47:39

标签: python-3.x kivy fullscreen

我在Kivy程序中有两个屏幕。第一个代表登录屏幕,所以它需要更小,而另一个有数据,所以我需要全屏显示。

我尝试使用

from kivy.config import Config
Config.set('graphics', 'width', '350')
Config.set('graphics', 'height', '250')

但是,问题在于其他屏幕的尺寸也减小了,如果你知道我需要做些什么来为不同的屏幕设置不同的尺寸,请帮助我。谢谢。

2 个答案:

答案 0 :(得分:0)

定义类似

的方法
from kivy.core.window import Window

def update_window_size(width, height):
    # Validate width and height then
    Window.size = (width, height)

并在所需的任何位置调用所需的高度和宽度。

___编辑1 - 添加样本。在Screen的初始化

中更改屏幕尺寸
from kivy.app import App
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.core.window import Window

sm = ScreenManager()


class Main(Screen):
    def __init__(self):
        super(Main, self).__init__()


class Login(Screen):
    def __init__(self):
        super(Login, self).__init__()
        # Change login screen size in it's __init__
        update_window_size(250, 250)


def update_window_size(width, height):
    # Validate width and height then
    Window.size = (width, height)


class MyApp(App):
    def build(self):
        return sm

MyApp().run()

答案 1 :(得分:0)

我今天早些时候回答了几乎相同的问题。编写你的python类似于:

Vue.delete(this.formErrors, field);

使用与此类似的multiscreen.kv文件:

from kivy.app import App
from kivy.uix.screenmanager import Screen, ScreenManager
from kivy.core.window import Window

class Screen_Manager(ScreenManager):
    pass

class Main(Screen):
    def __init__(self, **kwargs):
        super(Main, self).__init__(**kwargs)

    def on_pre_enter(self):
        Window.size = (900, 500)     

class Login(Screen):
    def __init__(self, **kwargs):
        super(Login, self).__init__(**kwargs)

    def on_pre_enter(self):
        Window.size = (400, 300)


class MultiScreenApp(App):
    def build(self):
        return Screen_Manager()

MultiScreenApp().run()