当我将它放入外部.kv文件时,为什么无法使用screenmanager使用正确的.kv代码?

功能完善的代码:

from kivy.app import App
from kivy.lang import Builder

from kivy.uix.screenmanager import ScreenManager, Screen, NoTransition

Builder.load_string("""
#:kivy 1.8

<StartScreen>:
    BoxLayout:
        Label:
            text: "Press Button to"
        Button:
            text: "Start Server"
            on_press:
                root.start_server()
                root.manager.current='stopscreen'

<StopScreen>:
    BoxLayout:
        Label:
            text: "Press Button to"
        Button:
            text: "Stop Server"
            on_press:
                root.stop_server()
                root.manager.current='startscreen'
""")

class StartScreen(Screen): 
    def start_server(self):
        print('Server started.')


class StopScreen(Screen):  
    def stop_server(self):
        print('Server stopped.')


sm = ScreenManager(transition=NoTransition())
sm.add_widget(StartScreen(name='startscreen'))
sm.add_widget(StopScreen(name='stopscreen'))


class MySpecialApp(App):

    def build(self):
        return sm


MySpecialApp().run()

现在,根据Kivy Docs的说法,应该可以将在此代码开头加载的字符串放入一个外部文件myspecial.kv中。一旦这样做,我的屏幕就会一片空白,没有按钮,也没有文本。为什么会这样,我如何才能使它正常工作?

激进的

myspecial.kv启动应用程序时会加载文件,但是在此之前您需要初始化小部件。在您运行的位置sm = ScreenManager(transition=NoTransition()),尚未加载kv,因此ScreenManager没有预期的样式。

您应该改为在build方法中创建窗口小部件在运行此方法之前,会先加载kv文件,因此一切正常。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用外部.kv文件还是内部处理?

来自分类Dev

使用外部.kv文件还是内部做事?

来自分类Dev

当我使用“ randomSelect”方法替换几行代码时,为什么我的程序无法运行

来自分类Dev

我可以在 .kv 文件中使用 for 语句吗?

来自分类Dev

当我尝试使用AWS IAM角色连接HashiCorp Vault时,如何解决“无法解析的Vault位置[kv / my-client-service]:找不到”的问题?

来自分类Dev

Kivy-错误:当我从.kv文件调用它时,“对象没有属性”

来自分类Dev

Kivy-错误:当我从.kv文件调用它时,“对象没有属性”

来自分类Dev

如何获取/传递当前的ScreenManager到按钮回调函数?(未使用kv文件)

来自分类Dev

Kivy:KV语言中的代码弹出窗口关闭按钮

来自分类Dev

Kivy:KV语言中的代码弹出窗口关闭按钮

来自分类Dev

Kivy-从python端更新kv代码中的标签

来自分类Dev

当我将self.customAnnotation放入循环中时,它将无法工作。有人可以帮忙吗?我正在使用absolutions.com(异步)中的代码

来自分类Dev

当我使用快速代码在UISearchBar外部触摸时如何解散键盘

来自分类Dev

为什么我的代码无法正确加载?

来自分类Dev

在弹出菜单中使用.kv中的switch_to,使用工厂打开.kv中的另一个标签!我无法实现

来自分类Dev

使用fileupload控件时,为什么我的代码无法将文件上传到Web服务器上的指定文件夹?

来自分类Dev

使用KV文件时在Kivy的python部分更改窗口

来自分类Dev

Kivy-使用.kv

来自分类Dev

我定义了一个带有属性的类,但是当我放入测试代码时,它不返回任何内容

来自分类Dev

为什么我无法打开使用此代码复制的pdf文件

来自分类Dev

当我使用在将粘贴到另一个文件中的代码中定义的变量时,它不应打印在文件中。为什么?

来自分类Dev

在kv文件中使用add_widget

来自分类Dev

当我打开使用Notepad ++创建的文件时,为什么Windows记事本将所有代码行放在一行上?

来自分类Dev

为什么我无法使用此javascript代码?

来自分类Dev

从源代码编译后,为什么我无法使用Ruby?

来自分类Dev

为什么我的砌体代码无法使用附加项目

来自分类Dev

为什么我的代码无法正确打印到文本文件?

来自分类Dev

当我使用交换矩阵reboot()时,为什么我的远程主机返回错误代码-1?

来自分类Dev

当我无法处理异常时,为什么退出代码为零(“良好”)?

Related 相关文章

  1. 1

    使用外部.kv文件还是内部处理?

  2. 2

    使用外部.kv文件还是内部做事?

  3. 3

    当我使用“ randomSelect”方法替换几行代码时,为什么我的程序无法运行

  4. 4

    我可以在 .kv 文件中使用 for 语句吗?

  5. 5

    当我尝试使用AWS IAM角色连接HashiCorp Vault时,如何解决“无法解析的Vault位置[kv / my-client-service]:找不到”的问题?

  6. 6

    Kivy-错误:当我从.kv文件调用它时,“对象没有属性”

  7. 7

    Kivy-错误:当我从.kv文件调用它时,“对象没有属性”

  8. 8

    如何获取/传递当前的ScreenManager到按钮回调函数?(未使用kv文件)

  9. 9

    Kivy:KV语言中的代码弹出窗口关闭按钮

  10. 10

    Kivy:KV语言中的代码弹出窗口关闭按钮

  11. 11

    Kivy-从python端更新kv代码中的标签

  12. 12

    当我将self.customAnnotation放入循环中时,它将无法工作。有人可以帮忙吗?我正在使用absolutions.com(异步)中的代码

  13. 13

    当我使用快速代码在UISearchBar外部触摸时如何解散键盘

  14. 14

    为什么我的代码无法正确加载?

  15. 15

    在弹出菜单中使用.kv中的switch_to,使用工厂打开.kv中的另一个标签!我无法实现

  16. 16

    使用fileupload控件时,为什么我的代码无法将文件上传到Web服务器上的指定文件夹?

  17. 17

    使用KV文件时在Kivy的python部分更改窗口

  18. 18

    Kivy-使用.kv

  19. 19

    我定义了一个带有属性的类,但是当我放入测试代码时,它不返回任何内容

  20. 20

    为什么我无法打开使用此代码复制的pdf文件

  21. 21

    当我使用在将粘贴到另一个文件中的代码中定义的变量时,它不应打印在文件中。为什么?

  22. 22

    在kv文件中使用add_widget

  23. 23

    当我打开使用Notepad ++创建的文件时,为什么Windows记事本将所有代码行放在一行上?

  24. 24

    为什么我无法使用此javascript代码?

  25. 25

    从源代码编译后,为什么我无法使用Ruby?

  26. 26

    为什么我的砌体代码无法使用附加项目

  27. 27

    为什么我的代码无法正确打印到文本文件?

  28. 28

    当我使用交换矩阵reboot()时,为什么我的远程主机返回错误代码-1?

  29. 29

    当我无法处理异常时,为什么退出代码为零(“良好”)?

热门标签

归档