如何使用kivy设计语言全屏制作窗口?

时间:2017-05-10 20:18:55

标签: python kivy kivy-language

有人可以告诉我如何使用设计语言将kivy窗口设置为全屏模式吗?

我正在寻找的结果是全屏界面/无边界全屏。如果您运行以下示例,您将看到我正在尝试实现的目标。

from kivy.core.window import Window
from kivy.uix.widget import Widget
from kivy.config import Config
from kivy.app import App

class ExampleClass(Widget):
    pass



class ExampleApp(App):
    def build(self):
       return ExampleClass()


Window.fullscreen = 'auto'
ExampleApp().run()

'''
   If you've never run it with that setting before. Be ready for borderless
   Full screen output.It can be scary the first time you see it lol :D
'''

我正在使用的代码示例如下。

from kivy.lang import Builder
from kivy.core.window import Window
from kivy.graphics import Canvas
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
from kivy.config import Config


class StartScreen(Screen):

    def Mute_Audio(self):
        pass


    def new_g(self):
        pass




    def l_g(self):
        pass


    def Settings(self):
        pass  



class SelectionScreen(Screen):
    pass


class MyScreenManager(ScreenManager):
    pass


root_widget = Builder.load_string('''
#:import FadeTransition kivy.uix.screenmanager.FadeTransition
MyScreenManager:
    transition: FadeTransition()
    StartScreen:
    SelectionScreen:

<StartScreen>:
    name: 'start_screen'
    canvas:
        Rectangle:
            pos: self.pos
            size: self.size



    Button:
        id: b_1
        pos: 330,350
        size_hint:  0.2, 0.1
        text: 'button 1'
        font_size: 18
        on_press: root.new_g()
        on_release: app.root.current = 'selection_screen'


    Button:
        id: b_2
        pos: 330, 280
        size_hint:  0.2, 0.1
        text: 'button_2'
        font_size: 18


    Button:
        id: settings
        pos: 330, 210
        size_hint: 0.2, 0.1
        text: 'Settings'
        font_size: 18


    Button:
        id: mute_button
        pos:658, 495     
        size_hint: 0.2, 0.2







<SelectionScreen>:
    name: 'selection_screen'
    canvas:
        Rectangle:
            pos: self.pos

''')

class ExampleApp(App):
    def build(self):
        self.title = 'Save me Stack Overflow'
        return root_widget

ExampleApp().run()  

重申一下,我需要帮助使用设计语言将窗口设置为全屏。我只是不知道如何用kv将其设置为全屏。

更新:

重新迭代。我不关心小部件的位置或整个屏幕的外观。我需要知道的是如何使用设计语言KV将窗口设置为全屏模式。

我展示了两个例子。第一个例子显示了我想要做的事情。它显示了一个无边框的全屏窗口。第二个例子说明了设计语言的一个例子。我需要在第二个例子中的第一个例子中产生相同的结果,但不是在直接python中做,我需要在设计语言中做到这一点。

1 个答案:

答案 0 :(得分:1)

似乎可以从KV文件中进行! (使用 setattr

一些kv文件:

#:import Window kivy.core.window.Window

<RootWidget>:
     some_property: setattr(Window, 'fullscreen' , 'auto')  or 'real_value!'

虽然是 hackish ......