2017-01-01 9 views
1

kivyアプリでは、テキスト入力ウィジェットがいくつかあります。ゴーストテキストとしてラベルを付けたいと思います。ゴーストテキストでは、後で呼び出す番号に値を渡さないという意味です。Kivy TextInputの "ゴースト"(または非可聴)テキストの書き方は?

たとえば、kivyアプリに2つのテキスト入力項目があるとします。

TextInput: 
    text: '1st number' 
    id: first_id 
    input_filter: 'float' 
    multiline: False 

TextInput: 
    text: '2nd number' 
    id: second_id 
    input_filter: 'float' 
    multiline: False 

アプリを実行すると、最初のテキスト入力にはデフォルトのテキスト「1番目の番号」があり、2番目のテキスト入力にはデフォルトのテキスト「2番目の番号」が付きます。私はそれらをメソッドを介して2つの浮動小数点数を加算する関数にリンクしています。問題は、ユーザーが何も入力せずに「実行」ボタンを押すと、アプリケーションが中断されることです。テキストを関数に渡すことができないようにする方法はありますか?

また、私はそれをバックグラウンドにしたいので、ユーザーはテキスト入力をタップしてから、数字を入力する前に「1st number」の書き込みを削除する必要はありません。

答えて

1

私はあなたが望む動作を作成する小さな例を作成したと思います。私はのTextInputラベルとして新しいウィジェットを作成した値が空の場合は、その唯一の...

a = Builder.load_string(""" 

<[email protected]>: 
    empty_text: "Input a number" 
    value: float(txt.text or '0.0') 
    TextInput: 
     id: txt 
     input_filter: 'float' 

    Label: 
     center: txt.center 
     size: self.parent.size or (300,300) 
     text: "" if self.parent.value else self.parent.empty_text 
     font_size: txt.font_size 
     color: 0,0,0,1 

BoxLayout: 
    FloatInput: 
     id: fi 
    Label: 
     text: "%s" % fi.value 

""") 




class SimpleApp(App): 
    def build(self): 
     return a 

SimpleApp().run() 

あなたの入力ウィジェットとして、このクラスを使用することができます...ラベルを示します

関連する問題