pyqt5怎么实现根据输入字符串的长度生成相应数量的label
时间: 2023-06-17 17:07:23 浏览: 90
可以通过循环生成相应数量的label,然后设置每个label的位置和大小来实现。以下是一个简单的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Label Example')
# 输入字符串
text = 'Hello, PyQt5!'
# 生成label
vbox = QVBoxLayout()
for i in range(len(text)):
label = QLabel(text[i])
label.setGeometry(i*20, 50, 20, 20)
vbox.addWidget(label)
self.setLayout(vbox)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在上面的代码中,我们首先定义一个字符串 `text`,然后通过循环生成相应数量的label,每个label的大小都是20x20,位置则根据循环变量 `i` 计算得到。最后将所有的label添加到一个垂直布局中,并将该布局设置为窗口的主布局。运行程序后,将会生成与输入字符串长度相同的label。
阅读全文