【问题标题】:Kivy Screen Manager Background ColorKivy 屏幕管理器背景颜色
【发布时间】:2020-04-25 14:37:30
【问题描述】:

我是 Kivy 的新手,我只是在学习用几个屏幕构建一个简单的东西。我看了 Kivy Crash Course 视频并想出了以下代码:

Python 文件如下所示(main.py):

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.tabbedpanel import TabbedPanel
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.graphics.context_instructions import Color
from kivy.uix.label import Label
from kivy.lang.builder import Builder


class sivaLoginScreen(Screen):
    def __init__(self,**kwargs):
        super(sivaLoginScreen,self).__init__(**kwargs)
        with self.canvas.before:
            Color(253,253,152,1)

class sivaTabbedScreen(Screen):
    pass


class sivaScreenManager(ScreenManager):
    pass

# Tell Kivy to directly load a file. If this file defines a root widget, it will be returned by the method.
root_widget = Builder.load_file('siva.kv')

class sivaApp(App):
    def build(self):
        # Initialize root widget
                return root_widget


if __name__ == '__main__':
    # Run application
    sivaApp().run()

kv 文件看起来像这样 (siva.kv):

sivaScreenManager:
    sivaLoginScreen:


<sivaLoginScreen>:
    name: 'login_screen'
    canvas.before:
        Color:
            rgba: 253, 253, 152, 1
        FloatLayout:
            Label:
                id: login_label
                pos: 100, 100
                text: 'S.I.V.A'
                font_size: '20sp'

当我使用python3 main.py 运行应用程序时,我得到一个黑色的空白屏幕。 我期待一个带有标签的彩色屏幕。你能帮我理解我哪里出错了吗?

【问题讨论】:

    标签: python-3.x kivy kivy-language


    【解决方案1】:

    你只设置了一种颜色,留下了形状,所以我在这一行添加了它。

    <sivaLoginScreen>:
        name: 'login_screen'
        canvas.before:
            Color:
                rgba: 253, 253, 152, 1
            Rectangle:
                 pos:self.pos 
                 size:self.size
    
    

    【讨论】:

    • 感谢您的回复。这真的很有帮助。一个小问题。在初始化画布时,在 kv 文件和 Python 代码中都以 rgba 格式设置颜色。是否必须设置两次或我可以删除任何一个?
    • 最好只通过 kv 文件设置画布颜色。只有在必须时才使用 python。所以去掉python自己的
    猜你喜欢
    • 2019-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多