2016-08-21 9 views
1

私はPyQtを使い始めましたが、私はQGridLayoutで要素を並べ替えようとしています。以下のコードでは、既存のボタンをセル(4,1)から(0,0)に移動します。removeWidget()が必要です

myButton = self.myGridLayout.itemAtPosition(4, 1).widget() 
    self.myGridLayout.removeWidget(myButton) 
    self.myGridLayout.addWidget(myButton, 0, 0) 

は同じです::

myButton = self.myGridLayout.itemAtPosition(4, 1).widget() 
    self.myGridLayout.addWidget(myButton, 0, 0) 

舞台裏のすべてを扱うのPyQtですかというものがあるのいずれか、まったく同じ振る舞いコードの両方の部分をremoveWidgetを使用するかではないことはので、私の混乱が発生します私は起きたことに気付かなかった?

おかげ

答えて

1

ウィジェットは1つのレイアウトにのみ属することができます。ウィジェットがレイアウトに追加される前に、Qtはそれがレイアウト内にあったかどうかをチェックし、そうであれば、現在のレイアウトからウィジェットを削除します。ウィジェットは、レイアウトの現在の親ウィジェットに自動的に親子関係になります。

ウィジェットは、同じレイアウトに2回追加することもできませんが、実際には上記の場合と全く同じであるため、まったく同じ方法で処理されます。

関連する問題