Kivy 用另一个小部件的文本填充 canvas 个对象
Kivy fills canvas objects with another widget's text
我刚开始学习 Kivy(一般的移动应用程序开发),创建这个应用程序只是为了说明我最大的问题。
该应用应显示一个椭圆及其下方的标签 "there should be an ellipse above"。
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 中,我在 phone 屏幕上看到了这个:https://drive.google.com/file/d/1lbCfbvbm96lBG1VXdEMRuEU2ApD8jA4c/view
椭圆用文本 "There should be an ellipse above" 填充并拉伸以适应 "ellipse" 的形状。如果我删除标签,"ellipse" 也会消失。每个 canvas 项都会出现同样的问题。
编辑:以非常不切实际的方式解决了这个问题。如果我创建一个只包含我想要的颜色的 .jpg 文件,将它保存在与主文件和 kv 文件相同的文件夹中,然后在 "Ellipse:" 行下方键入它,它就可以工作。不过一定有更好的解决办法吧?
source: 'white.jpg'
这看起来像是一个奇怪的错误,可能是由于绑定纹理 ID 的一些 opengl 问题引起的。
Play商店的Kivy应用有这种问题吗?你在 qpython 中只有 运行 这个吗?尝试使用 Kivy master 可能会很有趣,因为 qpython 的 Kivy 版本可能(肯定曾经)很旧。
我刚开始学习 Kivy(一般的移动应用程序开发),创建这个应用程序只是为了说明我最大的问题。
该应用应显示一个椭圆及其下方的标签 "there should be an ellipse above"。
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 中,我在 phone 屏幕上看到了这个:https://drive.google.com/file/d/1lbCfbvbm96lBG1VXdEMRuEU2ApD8jA4c/view
椭圆用文本 "There should be an ellipse above" 填充并拉伸以适应 "ellipse" 的形状。如果我删除标签,"ellipse" 也会消失。每个 canvas 项都会出现同样的问题。
编辑:以非常不切实际的方式解决了这个问题。如果我创建一个只包含我想要的颜色的 .jpg 文件,将它保存在与主文件和 kv 文件相同的文件夹中,然后在 "Ellipse:" 行下方键入它,它就可以工作。不过一定有更好的解决办法吧?
source: 'white.jpg'
这看起来像是一个奇怪的错误,可能是由于绑定纹理 ID 的一些 opengl 问题引起的。
Play商店的Kivy应用有这种问题吗?你在 qpython 中只有 运行 这个吗?尝试使用 Kivy master 可能会很有趣,因为 qpython 的 Kivy 版本可能(肯定曾经)很旧。