首页 > 解决方案 > 如何在 Kivy kv 文件中创建 Matplotlib 小部件?

问题描述

我想使用 .kv 文件来制作 Matplotlib 小部件,但我不知道该怎么做。

如果没有 .kv 文件,基本代码如下所示:

from kivy.garden.matplotlib.backend_kivyagg import FigureCanvasKivyAgg
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
import matplotlib.pyplot as plt

plt.plot([1, 23, 2, 4])
plt.ylabel('some numbers')

class MyApp(App):

    def build(self):
        box = BoxLayout()
        box.add_widget(FigureCanvasKivyAgg(plt.gcf()))
        return box

MyApp().run()

这是如何使用 .kv 文件完成的?

标签: pythonmatplotlibkivykivy-language

解决方案


所以这就是我想出来的。在 .KV 语言文件中,您指定一个布局并给它一个 id:

BoxLayout:
    id: destination

然后在您的python代码中使用以下内容:

self.ids.destination.add_widget(FigureCanvasKivyAgg(plt.gcf()))

因此,您可以有效地使用在 kivy 语言文件中设置的 id 作为 matplotlib 图形的参考。


推荐阅读