2017-03-03 4 views
1

Kivy 프로그램에 두 개의 화면이 있습니다. 첫 번째는 로그인 화면을 나타내므로 더 작아야하고 다른 하나는 데이터가 있으므로 전체 화면으로 만들어야합니다.두 개의 다른 kivy 화면 크기 변경

나는, 또한 내가 다른 화면에 대해 서로 다른 크기를 가지고 무엇을해야하는지 어떤 생각이 있으면 도와, 감소 문제가이 다른 화면의 크기이며,

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

을 사용하려고하지만, 감사.

+0

의 사용 가능한 복제 (http://stackoverflow.com/ 질문/14014955/how-to-change-window-size) – 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 할 수 있습니까? class LoginScreen (Screen) for : 및 클래스 DataDisplayScreen (클래스) 어떻게 앞으로 이동해야합니까 ?? 감사합니다 – Mahdi

+0

@Mahdi 나는 노력 호텔 fr – Juggernaut

+0

다시 한 번 감사드립니다 두 개의 화면으로 샘플을 추가,하지만 난이 오류가 : 아이 =의 CLS를 (__ no_builder = 참) 형식 오류 : __init의 __() 라인이하는 예기치 않은 키워드 인수 '__no_builder' – Mahdi

0

저는 이전에 거의 동일한 질문에 답했습니다. 이 비슷한 파이썬을 코드 :

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

을이 유사한 multiscreen.kv 파일을 [? 창 크기를 변경하는 방법]

<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'