2016-03-23 31 views
0

希望对你们中的一些人来说,这将是一个简单的问题。所以我正在编写一些代码来与加热器控制器进行交互。 GUI主要以Kivy语言编写(以划分各种屏幕),但我有一个将所有Kivy文件连接在一起的.py文件。在我的一个Kivy文件中,有几个TextInput字段可供用户定义一些数字值。一旦文本字段被填充,用户点击“开始”按钮开始加热器测试。 现在,我的问题是,当使用“开始”按钮作为我的国旗,我如何让Python读取字段中的数值?我在网上看了一些关于使用。 得到raw_input方法,但没有任何东西让Python从Kivy代码中检索和解释值。任何帮助将非常感激!从Kivy文件中读取Python 2.7中的用户输入数据

这是我的PF .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

回答

0

要访问值的TextInput你需要使用的TextInput的属性text,因此得到一个数字,你需要:

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

但是,如果你不会在你的ControllerScreen访问text,然后你需要管理你的类之间的通信,以便你可以在它们之间使用变量。您可以通过以下答案来实现它:例如,12

有一个选项,您可以设置一个filtering你的输入,所以你的用户不会搞砸了的东西(如输入字母/秒)

我在网上看了一下,有关使用不用彷徨的帖子和raw_input方法,但没有任何东西让Python从Kivy代码中检索和解释值。

我认为问题在于你寻找的是直接从python而不是从Kivy获取用户输入。我想说基维是相当新的,所以在旧的教程/网站将不会提及。官方网站或YouTube上都有针对kivy的教程和文档。