如何在PyQT中定位动态创建的小部件

2024-09-30 20:35:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用PyQGIS根据层中字段名的数量动态创建小部件。小部件创建成功,但其位置不正确。有没有办法使用Python将lineedit框定位到中间?下面是我动态创建小部件的代码。你知道吗

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

我想把文本框放在这样的地方

enter image description here


Tags: inselffieldfieldsforlabels部件动态创建
1条回答
网友
1楼 · 发布于 2024-09-30 20:35:22

如果要获得相同的表单顺序,必须使用QFormLayout。你知道吗

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)

相关问题 更多 >