【问题标题】:Kivy fills canvas objects with another widget's textKivy 用另一个小部件的文本填充画布对象
【发布时间】:2018-03-18 20:57:12
【问题描述】:

我刚开始学习 Kivy(一般来说是一种移动应用开发),创建这个应用只是为了说明我最大的问题。

应用应该显示一个椭圆和一个标签“上面应该有一个椭圆”。

main.py 文件:

#qpy:kivy
import kivy
kivy.require('1.10.0')
from kivy.app import App
from kivy.uix.widget import Widget
class Test(Widget):
    pass


class TestApp(App):
    def build(self):
        return Test()


if __name__ == '__main__':
    TestApp().run()

test.kv 文件:

#:kivy 1.10.0     
<Test>:    
    canvas:
        Ellipse:
            pos: 0, root.height / 2
            size: 500, 200
    Label:
        font_size: 80
        center_x: root.width / 2
        center_y: root.height / 4
        text: "There should be an ellipse above"

在 Ubuntu 中,这可以完美运行,但在 Qpython 和 Android 中,我在手机屏幕上看到:https://drive.google.com/file/d/1lbCfbvbm96lBG1VXdEMRuEU2ApD8jA4c/view

椭圆用文本“上面应该有一个椭圆”填充并拉伸以适应“椭圆”的形状。如果我删除标签,“椭圆”也会消失。每个画布项目都会出现同样的问题。

编辑:以非常不切实际的方式解决了这个问题。如果我创建一个只包含我想要的颜色的 .jpg 文件,将它保存在与 main 和 kv 文件相同的文件夹中,然后在“Ellipse:”行下方键入它,它就可以工作。但一定有更好的解决方案吧?

source: 'white.jpg'

【问题讨论】:

    标签: android python canvas kivy qpython


    【解决方案1】:

    这看起来像是一个奇怪的错误,可能是由于绑定纹理 ID 的一些 opengl 问题引起的。

    Play 商店中的 Kivy 应用是否存在此类问题?你只在qpython中运行过这个吗?尝试使用 Kivy master 可能会很有趣,因为 qpython 的 Kivy 版本可能(肯定曾经)很旧。

    【讨论】:

    • 如果您指的是 Kivy master 的 Google Play 应用“Kivy Launcher”,它可以工作。
    猜你喜欢
    • 1970-01-01
    • 2018-03-19
    • 2023-03-10
    • 1970-01-01
    • 2012-05-02
    • 2018-09-05
    • 2015-12-08
    • 2022-12-11
    • 1970-01-01
    相关资源
    最近更新 更多