2017-12-11 11 views
0

私は、PyQGISを使ってレイヤー内のフィールド名の数に基づいて動的にウィジェットを作成しています。ウィジェットは正常に作成されますが、正しく配置されません。 Pythonを使用してlineeditボックスを中央に配置する方法はありますか?以下は、ウィジェットを動的に作成するためのコードです。PyQTで動的に作成されたウィジェットを配置する方法

selectedLayerIndex = self.dlg.comboBox.currentIndex() 
selectedLayer = layers[selectedLayerIndex] 
fields = selectedLayer.pendingFields() 
fieldnames = [field.name() for field in fields] 
for i,field in enumerate(fieldnames): 
    self.labels = QLabel() 
    self.linedit = QLineEdit() 
    self.labels.setText(field) 
    self.linedit.setFixedWidth(100) 
    self.dlg.verticalLayout.addWidget(self.labels) 
    self.dlg.verticalLayout.addWidget(self.linedit) 

enter image description here

私はあなたがQFormLayoutを使用する必要があり、フォームの同じ順序を取得したい場合は、テキストボックスには、この

enter image description here

+0

あなたは彼らが真ん中にいるとはどういう意味ですか?あなたはグラフィックで手に入れたいものを説明することができます。 – eyllanesc

+0

私は投稿を編集しました – Farook

答えて

0

のようなものを置くことにしたいです。

selectedLayerIndex = self.dlg.comboBox.currentIndex() 
selectedLayer = layers[selectedLayerIndex] 
fields = selectedLayer.pendingFields() 
fieldnames = [field.name() for field in fields] 
flay = QFormLayout() 
for field in fieldnames: 
    le = QLineEdit() 
    le.setFixedWidth(100) 
    flay.addRow(field, le) 
self.dlg.verticalLayout.addLayout(flay) 
+0

素晴らしい!ありがとうございました。 – Farook

関連する問題