更改两个不同 kivy 屏幕的大小
Posted
技术标签:
【中文标题】更改两个不同 kivy 屏幕的大小【英文标题】:Changing size of two different kivy screens 【发布时间】:2017-07-22 23:04:00 【问题描述】:我在 Kivy 程序中有两个屏幕。第一个代表登录屏幕,所以需要小一些,而另一个有数据,所以我需要让它全屏。
我尝试使用
from kivy.config import Config
Config.set('graphics', 'width', '350')
Config.set('graphics', 'height', '250')
但是,问题在于另一个屏幕的尺寸也减小了,如果你知道我需要做什么来为不同的屏幕设置不同的尺寸,请帮助我,谢谢。
【问题讨论】:
How to change window size?的可能重复 不,不是,我在这里尝试更改两个不同窗口的大小,而不是单个窗口(上述问题的答案) 【参考方案1】:我今天早些时候回答了几乎相同的问题。像这样编写你的python代码:
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'
【讨论】:
【参考方案2】:定义一个类似的方法
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()
【讨论】:
非常感谢,但我对 Kivy 还很陌生,能否请您举例说明一下,例如 O 有两个用于两个屏幕的类:以上是关于更改两个不同 kivy 屏幕的大小的主要内容,如果未能解决你的问题,请参考以下文章