pyqt5水平布局上有一个伸缩因子,每次点击按钮,都往伸缩因子前面加上一个文本框
时间: 2024-05-06 09:16:21 浏览: 214
是的,PyQt5中的水平布局可以使用伸缩因子来控制子控件的大小和位置。您可以在每次点击按钮时使用QHBoxLayout.insertWidget()方法向布局中添加一个新的文本框,并将其放置在伸缩因子之前,以确保它始终在左侧。
下面是一个示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QHBoxLayout, QLineEdit, QPushButton
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
hbox = QHBoxLayout()
self.setLayout(hbox)
# 创建伸缩因子
hbox.addStretch(1)
# 创建按钮
btn = QPushButton('Add', self)
btn.clicked.connect(self.addTextbox)
hbox.addWidget(btn)
self.show()
def addTextbox(self):
# 在伸缩因子前插入一个新的文本框
hbox = self.layout()
textbox = QLineEdit(self)
hbox.insertWidget(hbox.count()-1, textbox)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在这个例子中,我们首先创建了一个水平布局,并添加了一个伸缩因子。然后,我们创建了一个“Add”按钮,并将其与addTextbox()槽函数连接。在addTextbox()函数中,我们获取当前布局并在伸缩因子前插入一个新的文本框。
每次单击“Add”按钮时,就会添加一个新的文本框。由于伸缩因子位于布局的右侧,所以每个新的文本框都会出现在左侧。
阅读全文