私はQVBoxレイアウトを使用しており、レイアウトには2つのウィジェットと動的レイアウト 'layout2'があります。ウィジェット1は上に固定されています。ウィジェット3は下に固定され、ウィジェット2は動的ウィジェットです。 layout2は毎回削除され、追加されます。ここでの問題は、レイアウト2のレイアウトが削除されたときにwidget3を最下部に配置できないことです.Widget3が上に移動します。以下はサンプルコードです。Pyqt5 add widgetの間に追加しますか?
class Screen(QWidget):
def __init__(self):
super(Screen, self).__init__()
self.main_layout = QVBoxLayout()
widget1 = QPushButton("Text1")
#self.widget2 = QWidget()
widget3 = QLabel("Text3")
self.widget2_layout = QHBoxLayout()
widget2_label = QLabel("text2")
self.widget2_layout.addWidget(widget2_label)
#self.widget2.setLayout(self.widget2_layout)
self.main_layout.addWidget(widget1,Qt.AlignTop)
self.main_layout.addLayout(self.widget2_layout)
self.main_layout.addWidget(widget3,Qt.AlignBottom)
widget1.clicked.connect(self.change_widget2)
self.setLayout(self.main_layout)
self.show()
def clearLayout(self,layout):
item = layout.takeAt(0)
while item:
w = item.widget()
if w:
w.deleteLater()
lay = item.layout()
if lay:
self.clearLayout(item.layout())
item = layout.takeAt(0)
def change_widget2(self):
self.clearLayout(self.widget2_layout)
self.widget2_layout = QHBoxLayout()
widget2_label = QLabel("text changed")
self.widget2_layout.addWidget(widget2_label)
self.main_layout.addLayout(self.widget2_layout)
app = QApplication(sys.argv)
Gui = Screen()
sys.exit(app.exec_())
私はaddstretch、ダミーの追加のレイアウトを試して何も働かなかった。
ウィジェット2を動的に変更したいと思っています。私は正しいですよ? – eyllanesc
はいウィジェットを動的に変更し、Widget1とwidget3の間に配置します 簡単にするために、レイアウト2ではラベルを1つだけ追加しましたが、それ以上のラベルを追加しました。 ありがとうございます –
ポジションはどういう意味ですか? – eyllanesc