首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用kv文件和python类初始化小部件的区别

使用kv文件和python类初始化小部件的区别
EN

Stack Overflow用户
提问于 2014-11-13 17:41:39
回答 1查看 1.6K关注 0票数 4

我正在学习如何用Kivy创建一个应用程序,我发现当我使用Python语言时,这个应用程序看起来是不同的。

我想做的是把背景染成红色。使用Python时,在左下角有一个红色小框(可能是默认的100 Python小部件大小)。当我使用kv文件时,我会得到整个背景颜色为红色。

这是我的python代码-

代码语言:javascript
运行
复制
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import *

class MyWidget(Widget):
    def __init__(self, **kwargs):
        super(MyWidget, self).__init__(**kwargs)
        with self.canvas:
            Color(1,0,0,1)
            Rectangle(size = self.size, pos = self.pos)


class MyWidgetApp(App):
    def build(self):
        x = MyWidget()
        return x
        pass

if __name__ == "__main__":
    MyWidgetApp().run()

这是我的kv文件

代码语言:javascript
运行
复制
<MyWidget@Widget>:
    canvas:
        Color:
            rgba: 1, 0, 0, 1.0
        Rectangle:
            size: self.size
            pos: self.pos

这一切为什么要发生?如何设置Python中的背景色?我在Linux机器上使用Python2.7

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-13 18:21:42

问题是kv自动进行绑定以更新红色矩形的位置和大小,而python没有(也不能)。您必须使用bind方法来创建您自己的绑定。我有一篇关于这个这里的博客文章--巧合的是,它正好提到了你的例子。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26915054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档