2016-03-23 30 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的教程和文檔。