簡體   English   中英

如何在PyQT中放置動態創建的小部件

[英]How to position the dynamically created widgets in PyQT

我正在使用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)

在此處輸入圖片說明

我希望在文本框中放置這樣的內容

在此處輸入圖片說明

如果要獲得表單的相同順序,則必須使用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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM