2017-06-23 14 views
0

ビデオが実行されているときにウィジェットを無効にしたいので、layoutGridを定義し、ファイル名でボタンに配置したクラスScreenVideoを作成しました。グローバル名 'layoutGrid'が定義されていません

私はon_pressコールバックを呼び出すと、エラーが発生します:グローバル名 'layoutGrid'が定義されていません。

class ScreenVideo(Screen): 
    def __init__ (self,**kwargs): 
     super (ScreenVideo, self).__init__(**kwargs) 

     root = FloatLayout(size=(Window.width, Window.height)) 
     layoutGrid = GridLayout(cols=1, row_force_default=True, row_default_height=70, size_hint_y=None) 
     layoutGrid .bind(minimum_height=layoutGrig.setter('height')) #for scroll 
     .... 

     for filename in os.listdir(folder location): 
      filename2 = filename.replace(".mp4", "") 
      btn = Button(text=str(filename2), font_size='25sp', italic = True) 
      btn.bind(on_release=self.callback) #on_press 
      layoutGrid.add_widget(btn) 

    def callback(self, instance): 
     ... 
     layoutGrid.disabled = True 

おかげ

+0

self.layoutGrid.disabled = Trueの はAttributeError: 'ScreenVideo' オブジェクトは、私がlayoutGridを作った 'layoutGrid' – kate

答えて

0

くださいlayoutGridインスタンスの属性:

class ScreenVideo(Screen): 
    def __init__ (self,**kwargs): 
     super (ScreenVideo, self).__init__(**kwargs) 

     root = FloatLayout(size=(Window.width, Window.height)) 
     self.layoutGrid = GridLayout(cols=1, row_force_default=True, row_default_height=70, size_hint_y=None) 
     self.layoutGrid.bind(minimum_height=self.layoutGrid.setter('height')) #for scroll 
     .... 

     for filename in os.listdir(folder location): 
      filename2 = filename.replace(".mp4", "") 
      btn = Button(text=str(filename2), font_size='25sp', italic = True) 
      btn.bind(on_release=self.callback) #on_press 
      self.layoutGrid.add_widget(btn) 

    def callback(self, instance): 
     ... 
     self.layoutGrid.disabled = True 
+0

何の属性を持っていません属性はありますが、エラーが発生します。self.layoutGrid.bind(minimum_height = layoutGrid.setter( 'height'))#for scroll NameError:グローバル名 'layoutGrid'が定義されていません – kate

+0

私は見逃していました1つはパラメータに含まれます。 –

+0

はい、コード内に表示されています。 – kate

関連する問題