2017-03-03 32 views
1

我在Kivy程序中有兩個屏幕。第一個代表登錄屏幕,所以它需要更小,而另一個有數據,所以我需要使其全屏。更改兩個不同的kivy屏幕的大小

我試圖用

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

但是,問題是與此有關的其他屏幕的尺寸也減少了,幫我,如果你有任何想法,我需要做的,有不同的屏幕大小不同,謝謝。

+0

的可能的複製(http://stackoverflow.com/代碼類似於你的Python這問題/ 14014955 /如何改變窗口大小) – Juggernaut

+0

沒有它的不,在這裏我試圖改變大小爲兩個不同的窗口不是爲單個窗口(這提到的問題答案) – Mahdi

回答

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

非常感謝,但我很安靜新的Kivy,你可以請expalin這個例子,例如O有兩個類的屏幕:class LoginScreen(Screen)for 類DataDisplayScreen(class)>我應該如何前進?謝謝 – Mahdi

+0

@Mahdi我加了兩個屏幕樣本 – Juggernaut

+0

再次感謝fr的努力,但我得到這個錯誤:child = cls(__ no_builder = True) TypeError:__init __()有一個意外的關鍵字參數'__no_builder' – Mahdi

0

我今天幾乎回答了相同的問題,早期改變屏幕尺寸。類似於這樣的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() 

:[?怎樣改變窗口大小]

<Screen_Manager>: 
    id: screen_manager 
    Login: 
    Main: 

<Login>: 
    name: 'login' 
    Button: 
     text: 'Go to Main' 
     on_press: root.manager.current = 'main' 

<Main>: 
    name: 'main' 
    Button: 
     text: 'Go to Login' 
     on_press: root.manager.current = 'login' 
相關問題