Kivy - 从文件

时间:2018-03-30 09:36:04

标签: python kivy

我有一个文本文件,我用作我正在制作的方向舵指示器的校准文件。 (它存储端口和stbd限制以及中心位置) 我想在程序启动时调用此文件,因此它具有与之前相同的校准设置。

我可以将3个数字作为str存储在.txt文件中,并知道如何将它们作为列表进行调用。 我的想法是当应用程序开始将列表的每个部分定义为变量时运行一个函数,例如。

calibrationfile1 = open('calfile.txt','r')
lines = calibrationfile1.readlines()
calvalue1 = lines[0].replace(",","").replace("[","").replace("]","")
calvalue = calvalue1.split()

rudderlimits = calvalue 

port_rudder_limit = rudderlimits[0]
stbd_rudder_limit = rudderlimits[1]
center_position = rudderlimits[2]

如何在启动时在函数中调用它并使变量在另一个函数中可用我不想使用'global'?

我已经制作了一个功能,这是一个校准,可以创建这个calfile.txt并且它可以工作。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

您可以在应用on_start方法

上加载文件
class YourApp(App):
    def on_start(self):
          self.calibration_data = your_file_loading_function() # returns a dict?

... # other places in your code
class Popcorn(Widget):
    def on_callback(self):
        port_rudder_limit = App.get_running_app().calibration_data['port_rudder_limit']
        ... # do something....

或来自kv文件

<MyWidget>:
     port_rudder_limit: app.calibration_data['port_rudder_limit']