从Kivy文件中读取Python 2.7中的用户输入数据

时间:2016-03-23 02:44:53

标签: python user-input kivy

希望这对你们中的一些人来说是一个简单的问题。所以我正在研究一些与加热器控制器接口的代码。 GUI主要使用Kivy语言编写(以划分各种屏幕),但我有一个.py文件,将所有Kivy文件绑定在一起。在我的一个Kivy文件中,有一些TextInput字段供用户定义几个数值。填写完文本字段后,用户点击"开始"按钮开始加热器测试。 现在,我的问题是使用"开始"按钮作为我的标志,如何让Python读取字段中的数值?我已经在线查看了有关使用。 get raw_input 方法的帖子,但没有任何Python从Kivy代码中检索和解释值。任何帮助将不胜感激!

这是我的.py文件的一部分,我需要在其中评估用户输入值......

class ControllerScreen(Screen):

def build(self):
    return ControllerScreen()

def CreateExcelFile(self):
        wb = Workbook()
        ws = wb.active
        ws.cell('A1').value = 'Timestamp'
        ws.cell('B1').value = 'Temperature'
        ws.cell('C1').value = 'Batch 1'
        ws.cell(row=2, column=1).value = 000
        wb.save("Spreadsheet1.xlsx")

这是Kivy文件的摘录,其中包含用户输入数字的单个文本字段的代码...

<ControllerScreen>:
    TextInput:                                    #Ramp time increment field
        id: ramp_time
        font_size: 25
        size_hint: 0.1,0.06
        pos_hint: {"right":0.575, 'y':0.67}

    Button:                             #Start analysis button
        on_release: app.root.current = "home"
        text: "Start"
        font_size: 25
        color: 0,1,0.5,1
        size_hint: 0.29,0.075
        pos_hint: {'x':0.35, 'y':0.1}

最后,这里有一张GUI图片,可以参考我所关注的文本字段(红色圈出的是我在上面的代码中引用的那个)...

GUI Interface

1 个答案:

答案 0 :(得分:0)

要访问TextInput的值,您需要使用TextInput的属性text,因此要获得您需要的数字:

n = int(self.ids.ramp_time.text) #or float or whatever you need

但是,如果您无法访问text中的ControllerScreen,则需要管理类之间的通信,以便在它们之间使用变量。您可以通过以下答案实现这一目标:例如12

您可以选择为输入设置filtering,这样您的用户就不会搞砸(例如输入字母/秒)

  

我已经在网上找了关于使用.get和raw_input方法的帖子,但没有任何Python从Kivy代码中检索和解释值。

我认为问题在于你是想直接从python而不是Kivy获取用户的输入。我会说Kivy很新,所以在老教程/网站中都没有提及。在官方网站或youtube上直接为kivy提供教程和文档。