希望这对你们中的一些人来说是一个简单的问题。所以我正在研究一些与加热器控制器接口的代码。 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图片,可以参考我所关注的文本字段(红色圈出的是我在上面的代码中引用的那个)...
答案 0 :(得分:0)
要访问TextInput
的值,您需要使用TextInput的属性text
,因此要获得您需要的数字:
n = int(self.ids.ramp_time.text) #or float or whatever you need
但是,如果您无法访问text
中的ControllerScreen
,则需要管理类之间的通信,以便在它们之间使用变量。您可以通过以下答案实现这一目标:例如1,2。
您可以选择为输入设置filtering,这样您的用户就不会搞砸(例如输入字母/秒)
我已经在网上找了关于使用.get和raw_input方法的帖子,但没有任何Python从Kivy代码中检索和解释值。
我认为问题在于你是想直接从python而不是Kivy获取用户的输入。我会说Kivy很新,所以在老教程/网站中都没有提及。在官方网站或youtube上直接为kivy提供教程和文档。