2016-05-09 22 views
0

カスタムウィジェット内でself.add_widget()を実行する方法はありますか?私は分割したい非常に大きなpythonファイルを持っています。そうすることで、私が持っているのは、別のクラスに移動されたいくつかの異なるウィジェットを持つメインウィンドウです。もともとは、このウィジェットを.kvファイルのidを使ってループとadd_widget()を使って埋めていました。私はそれを移動し、.kvファイルに配置される単一のGridLayoutを返す必要があります。子ウィジェットを持つカスタムウィジェットkivy

EDIT: 私はそのにclass custom(Widget):のようなカスタムウィジェットカスタムGridLayoutのclass custom(GridLayout):

そして、私はself.add_widget(Button())を持つ関数内を、私の説明で小さなミスを犯していません。私はエラーを取得する実行したとき:AttributeError: 'custom' object has no attribute '_trigger_layout'

答えて

0

あなたが追加して何を追加するかは、実際に質問されたくないとき...

あなたがウィジェットや他のいくつかのから継承したカスタムウィジェットを(持っている場合ウィジェット)では、initまたは関数でself.add_widget(arg)を呼び出すことができます。 、関数内でそれを使用するクラス変数(self.<var>)でwhatを保存し、後でそれを使用するには

class Custom(Widget): 
    def __init__(self, **kw): 
     super(Custom, self).__init__(**kw) 
     self.add_widget(kw['what']) 

:自分であなたがウィジェットを渡し、あなたはこのようwhatをキャッチどこがこのCustom(what=Button())ようにそれを使用することができますキーワード作りますself.add_widget(self.<var>)

関連する問題