主文件:使用kivy filechooser,我选择了一个csv文件,抓取数据并转换成列表。(姓名和年龄) 子文件:我想使用主文件中定义的名称(x轴)和年龄(y轴)绘制图形
mainfile.py:
import kivy
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
import os
import csv
Builder.load_file('design2.kv')
class MyWidget(BoxLayout):
def open(self, path, filename):
with open(os.path.join(path, filename[0])) as f:
csv_data = csv.reader(f)
datalines = list(csv_data)
names = [i[0] for i in datalines]
age = [i[1] for i in datalines]
print(names)
print(age)
class MyApp(App):
def build(self):
return MyWidget()
if __name__ == '__main__':
MyApp().run()
设计电压2.kv:
<MyWidget>:
id: my_widget
FileChooserListView:
id: filechooser
filters: ['*.csv']
on_selection: my_widget.open(filechooser.path, filechooser.selection)
子文件:
from mainfile import*
from matplotlib import pyplot as plt
plt.plot(names,age)
plt.show()
Im无法创建图形,因为子文件中的名称和年龄显示为未定义
请帮帮我
您的
names
和ages
仅定义为MyWidget
的open()
方法范围内的局部变量。如果要公开它们以便在open()
方法之外使用,则必须在全局级别定义它们。因此,您可以修改mainfile.py
以执行以下操作:此外,您还需要稍微修改
subfile
:相关问题 更多 >
编程相关推荐