2017-08-24 16 views
1

各コンポーネントは正常に動作しますが、残念ながら問題があります。最初のTextInputと2番目のTextInputが空でなく、(エンコード/デコード)のボタンがアンサーのラベルに表示されない場合、私は何か間違ったことをした?返信された回答がラベルに記載されていません

ここに私のmain.pyファイルです:

from kivy.app import App 
from kivy.lang import Builder 

from kivy.uix.boxlayout import BoxLayout 

from cipher import Cod as c 

class mother_layout(BoxLayout): 
     def encode(self,*args): 
      try: 
        self._lbl=self.ids['ans'] 
        self._txt=self.ids['tt'] 
        self._key=self.ids['tn'] 
        self._lbl.bind(text=c().Encode_en(KeyNumber=int(self._key.text),Text=str(self._txt.text))) 
      except: 
        self._lbl.text='bye bye' 

     def decode(self,*args): 
      try: 
        self._lbl=self.ids['ans'] 
        self._txt=self.ids['tt'] 
        self._key=self.ids['tn'] 
        self._lbl.bind(text=c().Decode_en(KeyNumber=int(self._key.text),Text=str(self._txt.text))) 
      except: 
        self._lbl.text='bye bye' 


Builder.load_file('main.kv') 

class myApp(App): 
     title='cesar cipher' 
     def build(self): 
      self.use_default_settings=False 
      m=mother_layout() 
      return m 

myApp().run() 

、ここで私のmain.kvファイルです:あなたはバインドを使用しての代わりに、ちょうどのテキストを設定している

<mother_layout>: 
    orientation:'vertical' 
    BoxLayout: 
     orientation:'vertical' 
     id:os 
     size_hint_y:None 
     height:root.height*0.4 
     BoxLayout: 
      orientation:'horizontal' 
      size_hint_y:None 
      height:os.height*.5 
      spacing:10 
      Label: 
       size_hint_x:.25 
       text:'Key of Encode/Decode ==>' 
       font_size:min(self.height,self.width)*0.09 
      TextInput: 
       size_hint_x:.25 
       number:True 
       id:tn 
       font_size:max(self.height,self.width)*0.1 
      Label: 
       size_hint_x:.25 
       text:'your text' 
       font_size:max(self.height,self.width)*0.1 
      TextInput: 
       size_hint_x:.25 
       id:tt 
       font_size:max(self.height,self.width)*0.1 
     BoxLayout: 
      size_hint_y:None 
      height:os.height*.5 
      orientation:'horizontal' 
      spacing:10 
      Button: 
       size_hint_x:.5 
       text:'encode' 
       font_size:max(self.height,self.width)*0.05 
       on_press:root.encode() 
      Button: 
       size_hint_x:.5 
       text:'decode' 
       font_size:max(self.height,self.width)*0.05 
       on_press:root.decode() 
    ScrollView: 
     size_hint_y:None 
     height:root.height*0.6 
     Label: 
      id:ans 
      text_size:self.width,None 
      size_hint_y:None 
      height:self.texture_size[1] 
      text:'here will place your encoded/decoded text\n4\n5\n'*50 
      color:0,0,0,1 
      canvas.before: 
       Color: 
        rgba:1,1,1,0.7 
       Rectangle: 
        size:ans.size 
        pos:ans.pos 
+0

.kvファイルが正しく表示されるように書式を修正してください。他のコードも問題なく表示されます。 –

答えて

0

ラベル

#in encode 
self._lbl.bind(text=c().Encode_en(KeyNumber=int(self._key.text),Text=str(self._txt.text))) 
#should be 
self._lbl.text = c().Encode_en(KeyNumber=int(self._key.text),Text=str(self._txt.text))) 

#do the same for decode... 
関連する問題